diff --git a/bin/content-migrator.cjs b/bin/content-migrator.cjs new file mode 100644 index 000000000..ed2055eb6 --- /dev/null +++ b/bin/content-migrator.cjs @@ -0,0 +1,119 @@ +const fs = require('fs'); +const path = require('path'); + +// 1 - Renames each readme.md to index.md +// e.g. +// before => roadmaps/frontend/content/internet/readme.md +// after => roadmaps/frontend/content/internet/index.md +// +// 2 - Replaces the resource tags with short codes +// e.g. +// Free Content +// W3Schools — Learn CSS +// +// {% resources %} +// {% Blog "https://www.w3schools.com/css/", "W3Schools — Learn CSS" %} +// {% endresources %} +// +// 3 - Removes the index.md file from within the content dir i.e. to avoid `/frontend` permalink for `/frontend/index.md` +// Because we have the `/frontend` permalink serving the actual roadmap and not any content +const roadmapsDir = path.join(__dirname, '../src/roadmaps'); +const roadmapDirs = fs.readdirSync(roadmapsDir); + +roadmapDirs.forEach((roadmapDirName) => { + const roadmapDirPath = path.join(roadmapsDir, roadmapDirName); + const contentDirPath = path.join(roadmapDirPath, 'content'); + + console.log(`[Start] == Migrating ${roadmapDirName}`); + + if (!fs.existsSync(contentDirPath)) { + console.log(`Content dir not found ${roadmapDirName}/content`); + return; + } + + function handleContentDir(parentDirPath) { + const dirChildrenNames = fs.readdirSync(parentDirPath); + + dirChildrenNames.forEach((dirChildName) => { + let dirChildPath = path.join(parentDirPath, dirChildName); + + // If directory, handle the children for it + if (fs.lstatSync(dirChildPath).isDirectory()) { + handleContentDir(dirChildPath); + } + + ////////////////////////////////////////////////////////// + // 1 - Rename directories to remove the numbers + ////////////////////////////////////////////////////////// + // let newDirChildPath = path.join( + // path.dirname(dirChildPath), + // path.basename(dirChildPath).replace(/^\d+-/, '') + // ); + // fs.renameSync(dirChildPath, dirChildPath); + + ////////////////////////////////////////////////////////// + // 1 - Rename readme.md to index.md + ////////////////////////////////////////////////////////// + if (dirChildPath.endsWith('readme.md')) { + const newFilePath = path.join(path.dirname(dirChildPath), `index.md`); + + fs.renameSync(dirChildPath, newFilePath); + dirChildPath = newFilePath; + } + + ////////////////////////////////////////////////////////// + // 2 - Replace the resource tags with short codes + ////////////////////////////////////////////////////////// + if (fs.lstatSync(dirChildPath).isFile()) { + const fileContent = fs.readFileSync(dirChildPath, 'utf-8'); + + let resourceLinks = [...fileContent.matchAll(//g)].map(([fullMatch]) => { + // const resourceType = fullMatch.match(/badgeText=["'](.+?)["']/)[1]; + const link = fullMatch.match(/href=["'](.+?)["']/)[1]; + const text = fullMatch.match(/>([^<]+)<\/BadgeLink>$/)[1]; + + return `- [${text.replaceAll(/['"]/g, '')}](${link})`; + }); + + ////////////////////////////////////////////////////////////////////// + // Replace the dedicated roadmap tag with the short code + ////////////////////////////////////////////////////////////////////// + // prettier-ignore + const dedicatedRegex = //; + const dedicatedMatches = fileContent.match(dedicatedRegex); + + if (dedicatedMatches) { + const [, href, title] = dedicatedMatches; + + resourceLinks = [`- [${title}](${href})`, ...resourceLinks]; + } + + resourceLinks = resourceLinks.join('\n'); + + let newFileContent = fileContent.replace( + /([^<\/BadgeLink>]|\S|\s)+<\/BadgeLink>/, + resourceLinks + ); + + // In case if the resources were not wrapped in + newFileContent = newFileContent.replace( + /]|\S|\s)+<\/BadgeLink>/, + resourceLinks + ); + + fs.writeFileSync(dirChildPath, newFileContent); + } + }); + } + + handleContentDir(contentDirPath); + + // 3 - Removes the index.md file from within the content dir i.e. to avoid `/frontend` permalink for `/frontend/index.md` + // Because we have the `/frontend` permalink serving the actual roadmap and not any content + const contentRootFile = path.join(contentDirPath, '/index.md'); + if (fs.existsSync(contentRootFile)) { + fs.rmSync(contentRootFile); + } + + console.log(` == Migrated ${roadmapDirName}`); +}); diff --git a/bin/sync-content.sh b/bin/sync-content.sh index a42c6278e..c3153c0fe 100644 --- a/bin/sync-content.sh +++ b/bin/sync-content.sh @@ -21,7 +21,7 @@ echo "=== Migrating Roadmaps ===" node roadmap-migrator.cjs echo "=== Migrating Content ===" -# node content-migrator.cjs +node content-migrator.cjs echo "=== Migrating Guides ===" # node guide-migrator.cjs diff --git a/src/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md b/src/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md index 804145ccc..68bd28366 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md +++ b/src/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md @@ -2,8 +2,7 @@ TypeScript is a strongly typed, object-oriented, compiled programming language that builds on JavaScript. It is a superset of the JavaScript language, designed to give you better tooling at any scale. TypeScript calls itself “JavaScript with syntax for types.” In short, it is JavaScript with some additional features. The secret to the success of TypeScript is in the type checking, ensuring that the data flowing through the program is of the correct kind of data. -Free Content -What is TypeScript -W3Schools – TypeScript Tutorial -Tutorials point – TypeScript Tutorial -TypeScript Crash Course for Beginners \ No newline at end of file +- [What is TypeScript](https://thenewstack.io/what-is-typescript/) +- [W3Schools – TypeScript Tutorial](https://www.w3schools.com/typescript/) +- [Tutorials point – TypeScript Tutorial](https://www.tutorialspoint.com/typescript/index.htm) +- [TypeScript Crash Course for Beginners](https://www.youtube.com/watch?v=d56mG7DezGs) \ No newline at end of file diff --git a/src/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md b/src/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md index 7fc3f4253..1fa6c868c 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md +++ b/src/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md @@ -2,6 +2,5 @@ TypeScript extends JavaScript, providing a better developer experience. The benefits of using TypeScript over JavaScript include.Static typing – TypeScript comes with optional static typing and a type inference system, which means that a variable declared with no type may be inferred by TypeScript based on its value. Object-oriented programming – TypeScript supports object-oriented programming concepts like classes, inheritance, etc. Compile time checks – JavaScript is an interpreted programming language. There is no compilation involved. Hence, the errors get caught during the runtime. Since TypeScript compiles into JavaScript, errors get reported during the compile time rather than the runtime. Code editor support – IDEs or code editors like VS Code support autocomplete for a TypeScript codebase. They also provide inline documentation and highlight the errors. Use existing packages – You might want to use an npm package written in JavaScript. Since TypeScript is a superset of JavaScript, you can import and use that package. Moreover, the TypeScript community creates and maintains type definitions for popular packages that can be utilized in your project. -Free Content -linguinecode - Reasons to use TypeScript -Codemotion - Reasons to use TypeScript +- [linguinecode - Reasons to use TypeScript](https://linguinecode.com/post/5-reasons-why-to-use-typescript) +- [Codemotion - Reasons to use TypeScript](https://www.codemotion.com/magazine/backend/why-you-should-use-typescript-for-your-next-project/) diff --git a/src/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md b/src/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md index 7c9c2cd38..071246b21 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md +++ b/src/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md @@ -4,8 +4,7 @@ Type compatibility in TypeScript is based on structural subtyping. `Structural t TypeScript’s structural type system was designed based on how JavaScript code is typically written. Because JavaScript widely uses anonymous objects like function expressions and object literals, it’s much more natural to represent the relationships found in JavaScript libraries with a structural type system instead of a nominal one. -Free Content -Structural typings — Medium -Structural typings — Typescriptlang -Structural typing video for Beginners +- [Structural typings — Medium](https://medium.com/redox-techblog/structural-typing-in-typescript-4b89f21d6004) +- [Structural typings — Typescriptlang](https://www.typescriptlang.org/docs/handbook/type-compatibility.html) +- [Structural typing video for Beginners](https://www.youtube.com/watch?v=kWtwsX_rT3k) diff --git a/src/roadmaps/angular/content/100-typescript-basics/103-type-inference.md b/src/roadmaps/angular/content/100-typescript-basics/103-type-inference.md index 57c0b6886..566f950da 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/103-type-inference.md +++ b/src/roadmaps/angular/content/100-typescript-basics/103-type-inference.md @@ -2,6 +2,5 @@ In TypeScript, several places where `type inference` is used to provide type information when there is no explicit type annotation. The type of the x variable is inferred to be a number. This inference occurs when variables and members are initialized, set parameter default values are, and determine function return types. For example, `let x: number`. In most cases, type inference is straightforward. In the following sections, we’ll explore some nuances in how types are inferred. For example, `let x: (number | null)[]` -Free Content -Type Interface - typescriptlang -Type Inference video for Beginners \ No newline at end of file +- [Type Interface - typescriptlang](https://www.typescriptlang.org/docs/handbook/type-inference.html) +- [Type Inference video for Beginners](https://www.youtube.com/watch?v=3ui_st7rtfA) \ No newline at end of file diff --git a/src/roadmaps/angular/content/100-typescript-basics/104-union-types.md b/src/roadmaps/angular/content/100-typescript-basics/104-union-types.md index 998cfd41c..52a1b3168 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/104-union-types.md +++ b/src/roadmaps/angular/content/100-typescript-basics/104-union-types.md @@ -2,6 +2,5 @@ In TypeScript, we can define a variable that can have multiple types of values. In other words, TypeScript can combine one or two types of data (i.e., number, string, etc.) in a single type, a union type. Union types are a powerful way to express a variable with multiple types. Two or more data types can be combined using the pipe ('|') symbol between the types. For example, `(type1 | type2 | type3 | .. | typeN)`. -Free Content -Union Types - typescriptlang -Union Type video for Beginners +- [Union Types - typescriptlang](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html) +- [Union Type video for Beginners](https://www.youtube.com/watch?v=uxjpm4W5pCo) diff --git a/src/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md b/src/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md index 4f90e8a04..a720db8e4 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md +++ b/src/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md @@ -2,6 +2,5 @@ The Builtin types represent the different types of values supported by the language. The builtin types check the validity of the supplied values before they are stored or manipulated by the program. This ensures that the code behaves as expected. The Builtin types further allow for richer code hinting and automated documentation too. -Free Content -TypeScript Types - Tutorialspoint -Builtin Type video for Beginners \ No newline at end of file +- [TypeScript Types - Tutorialspoint](https://www.tutorialspoint.com/typescript/typescript_types.htm) +- [Builtin Type video for Beginners](https://www.youtube.com/watch?v=Nt9ajBrqV_M) \ No newline at end of file diff --git a/src/roadmaps/angular/content/100-typescript-basics/106-type-guard.md b/src/roadmaps/angular/content/100-typescript-basics/106-type-guard.md index d482e65a6..a83a054f8 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/106-type-guard.md +++ b/src/roadmaps/angular/content/100-typescript-basics/106-type-guard.md @@ -6,5 +6,4 @@ TypeScript uses built-in JavaScript operators like `typeof`, `instanceof`, and t Type guards are typically used for narrowing a type and are pretty similar to feature detection, allowing you to detect the correct methods, prototypes, and properties of a value. Therefore, you can quickly figure out how to handle that value. -Free Content -Types Guards - Blog +- [Types Guards - Blog](https://blog.logrocket.com/how-to-use-type-guards-typescript/) diff --git a/src/roadmaps/angular/content/100-typescript-basics/readme.md b/src/roadmaps/angular/content/100-typescript-basics/index.md similarity index 57% rename from src/roadmaps/angular/content/100-typescript-basics/readme.md rename to src/roadmaps/angular/content/100-typescript-basics/index.md index a0bbef8a3..2fa45c980 100644 --- a/src/roadmaps/angular/content/100-typescript-basics/readme.md +++ b/src/roadmaps/angular/content/100-typescript-basics/index.md @@ -2,5 +2,5 @@ In order to enter into the world of Angular application development, typescript is necessary and it is the primary language here. Typescript is a superset of JavaScript. It comes with design-time support which is useful for type safety and tooling. Since, browsers cannot execute the TypeScript directly, it will be 'Transpiled' into JavaScript using the tsc compiler. -Typescript a Beginners Guide -TypeScript Playground +- [Typescript a Beginners Guide](https://medium.com/jspoint/typescript-a-beginners-guide-6956fe8bcf9e) +- [TypeScript Playground](https://www.typescriptlang.org/play) diff --git a/src/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md b/src/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md index ae5d5f440..1f800d422 100644 --- a/src/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md +++ b/src/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md @@ -4,5 +4,4 @@ The observer pattern is a software design pattern in which an object, named the Angular uses the Observer pattern which simply means — Observable objects are registered, and other objects observe (in Angular using the subscribe method) them and take action when the observable object is acted on in some way. -Free Content -Angular and Observable \ No newline at end of file +- [Angular and Observable](https://medium.com/fuzzycloud/angular-and-observable-4bf890b2a282) \ No newline at end of file diff --git a/src/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md b/src/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md index 1cb930e3e..2c01d138a 100644 --- a/src/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md +++ b/src/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md @@ -8,5 +8,4 @@ There are 4 stages for a life cycle of an observable. - Execution - Destruction -Free Content -Understanding Observable LifeCycle +- [Understanding Observable LifeCycle](https://medium.com/analytics-vidhya/understanding-rxjs-observables-ad5b34d9607f) diff --git a/src/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md b/src/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md index 5b8ece304..ecc949330 100644 --- a/src/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md +++ b/src/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md @@ -2,7 +2,6 @@ Marble testing allows you to test asynchronous RxJS code synchronously and step-by-step with the help of RxJS TestScheduler test utility and using virtual time steps. -Free Content -Angular Marble Testing: A Brief Introduction -IUnderstanding Marble Diagrams for Reactive Streams -Interactive Diagrams +- [Angular Marble Testing: A Brief Introduction](https://www.altamira.ai/blog/angular-marble-testing-a-brief-introduction/) +- [IUnderstanding Marble Diagrams for Reactive Streams](https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5) +- [Interactive Diagrams](https://rxmarbles.com/#from) diff --git a/src/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md b/src/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md index adb4fb76d..8c8299798 100644 --- a/src/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md +++ b/src/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md @@ -7,5 +7,4 @@ In a nutshell, the main differences between the Promise and the Observable are a - The Promise can provide a single value, whereas the Observable is a stream of values (from 0 to multiple values), you can apply RxJS operators to the Observable to get a new tailored stream. -Free Content -Why RxJS? RxJS vs Promises +- [Why RxJS? RxJS vs Promises](https://javascript.plainenglish.io/why-rxjs-rxjs-vs-promises-b28962771d68) diff --git a/src/roadmaps/angular/content/101-rxjs-basics/104-operators/readme.md b/src/roadmaps/angular/content/101-rxjs-basics/104-operators/index.md similarity index 79% rename from src/roadmaps/angular/content/101-rxjs-basics/104-operators/readme.md rename to src/roadmaps/angular/content/101-rxjs-basics/104-operators/index.md index 51320cadb..a11e11127 100644 --- a/src/roadmaps/angular/content/101-rxjs-basics/104-operators/readme.md +++ b/src/roadmaps/angular/content/101-rxjs-basics/104-operators/index.md @@ -31,12 +31,6 @@ import { interval } from 'rxjs'; const observable = interval(1000 /* number of milliseconds */); ``` -List of creation operators - - -## Higher-order Observables - -Observables most commonly emit ordinary values like strings and numbers, but surprisingly often, it is necessary to handle Observables of Observables, so-called higher-order Observables. - -Full RxJS Operators Documentation +- [List of creation operators](https://rxjs.dev/guide/operators#creation-operators-list) +- [Full RxJS Operators Documentation](https://rxjs.dev/guide/operators) diff --git a/src/roadmaps/angular/content/101-rxjs-basics/readme.md b/src/roadmaps/angular/content/101-rxjs-basics/index.md similarity index 100% rename from src/roadmaps/angular/content/101-rxjs-basics/readme.md rename to src/roadmaps/angular/content/101-rxjs-basics/index.md diff --git a/src/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md b/src/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md index 5008965a7..df0b7a911 100644 --- a/src/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md +++ b/src/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md @@ -2,6 +2,5 @@ AngularJS was the older version of Angular, whose support officially ended in January 2022. Angular is a component-based front-end development framework built on TypeScript, which includes a collection of well-integrated libraries that include features like routing, forms management, client-server communication, and more. -Free Content -AngularJS Website -Official - Getting started with Angular \ No newline at end of file +- [AngularJS Website](https://angularjs.org/) +- [Official - Getting started with Angular](https://angular.io/start) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/101-angular-components.md b/src/roadmaps/angular/content/102-angular-basics/101-angular-components.md index 37e779033..3143048bb 100644 --- a/src/roadmaps/angular/content/102-angular-basics/101-angular-components.md +++ b/src/roadmaps/angular/content/102-angular-basics/101-angular-components.md @@ -7,6 +7,5 @@ Components are the main building block for Angular applications. Each component * A CSS selector that defines how the component is used in a template * Optionally, CSS styles applied to the template -Free Content -Angular Components Overview -Standalone Components in Angular \ No newline at end of file +- [Angular Components Overview](https://angular.io/guide/component-overview) +- [Standalone Components in Angular](https://www.youtube.com/watch?v=x5PZwb4XurU) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/102-angular-templates.md b/src/roadmaps/angular/content/102-angular-basics/102-angular-templates.md index 89530de91..cd4e48419 100644 --- a/src/roadmaps/angular/content/102-angular-basics/102-angular-templates.md +++ b/src/roadmaps/angular/content/102-angular-basics/102-angular-templates.md @@ -2,6 +2,5 @@ A Template is a form of HTML which tells Angular to go towards another component. To create many Angular features, special syntax within the templates is used. -Free Content -Understanding Templates -Template Syntax \ No newline at end of file +- [Understanding Templates](https://angular.io/guide/template-overview) +- [Template Syntax](https://angular.io/guide/template-syntax) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/103-angular-modules.md b/src/roadmaps/angular/content/102-angular-basics/103-angular-modules.md index 45e8a9dde..f504e5cc2 100644 --- a/src/roadmaps/angular/content/102-angular-basics/103-angular-modules.md +++ b/src/roadmaps/angular/content/102-angular-basics/103-angular-modules.md @@ -2,5 +2,4 @@ Modules in Angular act like a container where we can group the components, directives, pipes, and services, related to the application. -Free Content -Introduction to Modules \ No newline at end of file +- [Introduction to Modules](https://angular.io/guide/architecture-modules) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md b/src/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md index cbf714dbf..e99153c5a 100644 --- a/src/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md +++ b/src/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md @@ -2,6 +2,5 @@ Dependency Injection is one of the fundamental concepts in Angular. DI is wired into the Angular framework and allows classes with Angular decorators, such as Components, Directives, Pipes, and Injectables, to configure dependencies that they need. -Free Content -Understanding Dependency Injection -Dependency Injection in Action \ No newline at end of file +- [Understanding Dependency Injection](https://angular.io/guide/dependency-injection) +- [Dependency Injection in Action](https://angular.io/guide/dependency-injection-in-action) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/105-services.md b/src/roadmaps/angular/content/102-angular-basics/105-services.md index e6e4db7c6..f9cd73915 100644 --- a/src/roadmaps/angular/content/102-angular-basics/105-services.md +++ b/src/roadmaps/angular/content/102-angular-basics/105-services.md @@ -2,8 +2,7 @@ Services let you define code or functionalities that are then accessible and reusable in many other components in the Angular project. It also helps you with the abstraction of logic and data that is hosted independently but can be shared across other components. -Free Content -Services -What is an Angular Service -Service for API Calls -Service Tutorial with Example +- [Services](https://angular.io/tutorial/toh-pt4) +- [What is an Angular Service](https://www.javatpoint.com/what-is-an-angular-service) +- [Service for API Calls](https://www.knowledgehut.com/blog/web-development/make-api-calls-angular) +- [Service Tutorial with Example](https://www.positronx.io/angular-service-tutorial-with-example/) diff --git a/src/roadmaps/angular/content/102-angular-basics/106-routing.md b/src/roadmaps/angular/content/102-angular-basics/106-routing.md index a1695dfa8..677b0cf40 100644 --- a/src/roadmaps/angular/content/102-angular-basics/106-routing.md +++ b/src/roadmaps/angular/content/102-angular-basics/106-routing.md @@ -2,6 +2,5 @@ Routing in Angular allows the users to create a single-page application with multiple views and allows navigation between them. -Free Content -Angular Routing -Common Routing Tasks \ No newline at end of file +- [Angular Routing](https://angular.io/guide/routing-overview) +- [Common Routing Tasks](https://angular.io/guide/router) \ No newline at end of file diff --git a/src/roadmaps/angular/content/102-angular-basics/readme.md b/src/roadmaps/angular/content/102-angular-basics/index.md similarity index 100% rename from src/roadmaps/angular/content/102-angular-basics/readme.md rename to src/roadmaps/angular/content/102-angular-basics/index.md diff --git a/src/roadmaps/angular/content/103-angular-cli/100-ng-build.md b/src/roadmaps/angular/content/103-angular-cli/100-ng-build.md index 9b2972204..5a67e03cc 100644 --- a/src/roadmaps/angular/content/103-angular-cli/100-ng-build.md +++ b/src/roadmaps/angular/content/103-angular-cli/100-ng-build.md @@ -2,6 +2,5 @@ The command can be used to build a project of type "application" or "library". When used to build a library, a different builder is invoked, and only the ts-config, configuration, and watch options are applied. All other options apply only to building applications. -Free Resources -Ng Build - Angular.io -Building an Angular project \ No newline at end of file +- [Ng Build - Angular.io](https://angular.io/cli/build) +- [Building an Angular project](https://www.youtube.com/watch?v=VB6WuCPDwz0) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/101-ng-serve.md b/src/roadmaps/angular/content/103-angular-cli/101-ng-serve.md index b55cc6790..cfbd93198 100644 --- a/src/roadmaps/angular/content/103-angular-cli/101-ng-serve.md +++ b/src/roadmaps/angular/content/103-angular-cli/101-ng-serve.md @@ -2,6 +2,5 @@ ng serve — This command builds, deploy, serves and every time watches your code changes. if find any change in code it builds and serves that code automatically. How do Angular builds? After coding our Angular apps using TypeScript, we use the Angular CLI command to build the app. -Free Resources -Ng serve - Angular.io -Running a project with ng serve \ No newline at end of file +- [Ng serve - Angular.io](https://angular.io/cli/serve) +- [Running a project with ng serve](https://www.youtube.com/watch?v=-w-RfHcLt5U) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/102-ng-generate.md b/src/roadmaps/angular/content/103-angular-cli/102-ng-generate.md index 94392ef86..e1a2574fe 100644 --- a/src/roadmaps/angular/content/103-angular-cli/102-ng-generate.md +++ b/src/roadmaps/angular/content/103-angular-cli/102-ng-generate.md @@ -3,6 +3,5 @@ ng generate is used to create the component in angular project. These are the two main ways to generate a new component in Angular: using ng g c , and using ng generate component . Using either of these two commands, the new component can be generated pretty easily and followed by the suitable component name of your choice. -Free Resources -Ng generate - Angular.io -Angular cli generate component \ No newline at end of file +- [Ng generate - Angular.io](https://angular.io/cli/generate) +- [Angular cli generate component](https://www.youtube.com/watch?v=NlHlu_zzmo4) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/103-ng-test.md b/src/roadmaps/angular/content/103-angular-cli/103-ng-test.md index 67da9598a..ff0f0edf7 100644 --- a/src/roadmaps/angular/content/103-angular-cli/103-ng-test.md +++ b/src/roadmaps/angular/content/103-angular-cli/103-ng-test.md @@ -5,6 +5,5 @@ ng test is used to runs unit tests in angular project. `ng test [options]` | `ng t [options]` -Free Resources -Ng test - Angular.io -Angular Ng test commands \ No newline at end of file +- [Ng test - Angular.io](https://angular.io/cli/test) +- [Angular Ng test commands](https://www.youtube.com/watch?v=n1O_eRwzRKA) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md b/src/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md index c32c0dc88..9dff5f24f 100644 --- a/src/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md +++ b/src/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md @@ -2,6 +2,5 @@ End-to-end testing (E2E) of Angular applications is performed using the Protractor testing framework, which is created by the Angular team themselves. Protractor can perform end to end tests on Angular applications that are running in a real browser by interacting with it, similar to that of an end-user. -Free Resources -Ng e2e - Angular.io -Angular cli generate component \ No newline at end of file +- [Ng e2e - Angular.io](https://angular.io/cli/e2e) +- [Angular cli generate component](https://www.youtube.com/watch?v=3vFnhzEGfew) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/105-ng-new.md b/src/roadmaps/angular/content/103-angular-cli/105-ng-new.md index 25a555889..4054dc21c 100644 --- a/src/roadmaps/angular/content/103-angular-cli/105-ng-new.md +++ b/src/roadmaps/angular/content/103-angular-cli/105-ng-new.md @@ -6,6 +6,5 @@ That’s the default usage of the command and creating a new project folder with The default Angular project, All dependencies installed in node_modules folder , Testing files for each components -Free Resources -Ng New - Angular.io -ng New command \ No newline at end of file +- [Ng New - Angular.io](https://angular.io/cli/new) +- [ng New command](https://www.youtube.com/watch?v=NdEpZezptkQ) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/106-schematics.md b/src/roadmaps/angular/content/103-angular-cli/106-schematics.md index 2474a11b3..92d8e72a6 100644 --- a/src/roadmaps/angular/content/103-angular-cli/106-schematics.md +++ b/src/roadmaps/angular/content/103-angular-cli/106-schematics.md @@ -2,6 +2,5 @@ A schematic is a template-based code generator that supports complex logic. It is a set of instructions for transforming a software project by generating or modifying code. -Free Content -Angular Website -Angular Blog +- [Angular Website](https://angular.io/guide/schematics#:~:text=A%20schematic%20is%20a%20template,collections%20and%20installed%20with%20npm.) +- [Angular Blog](https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2?gi=ad9571373944) diff --git a/src/roadmaps/angular/content/103-angular-cli/index.md b/src/roadmaps/angular/content/103-angular-cli/index.md new file mode 100644 index 000000000..24821bccf --- /dev/null +++ b/src/roadmaps/angular/content/103-angular-cli/index.md @@ -0,0 +1,8 @@ +# Angular CLI + +The Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications directly from a command shell. we can install angular latest CLI using the following command + +`npm install -g @angular/cli` + +- [Angular CLI - Angular.io](https://angular.io/cli) +- [Angular CLI - setup](https://www.youtube.com/watch?v=mZnzX3J5XKI) \ No newline at end of file diff --git a/src/roadmaps/angular/content/103-angular-cli/readme.md b/src/roadmaps/angular/content/103-angular-cli/readme.md deleted file mode 100644 index 65ab5bf61..000000000 --- a/src/roadmaps/angular/content/103-angular-cli/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Angular CLI - -The Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications directly from a command shell. we can install angular latest CLI using the following command - -`npm install -g @angular/cli` - -Free Resources -Angular CLI - Angular.io -Angular CLI - setup \ No newline at end of file diff --git a/src/roadmaps/angular/content/104-templates/100-interpolation.md b/src/roadmaps/angular/content/104-templates/100-interpolation.md index e2dbf3bc3..2005f4980 100644 --- a/src/roadmaps/angular/content/104-templates/100-interpolation.md +++ b/src/roadmaps/angular/content/104-templates/100-interpolation.md @@ -2,5 +2,4 @@ Interpolation refers to embedding expressions into marked up text. By default, interpolation uses the double curly braces {{ and }} as delimiters. Angular replaces currentCustomer with the string value of the corresponding component property. -Free Content -Angular Official Website +- [Angular Official Website](ttps://angular.io/guide/interpolation) diff --git a/src/roadmaps/angular/content/104-templates/101-property-binding.md b/src/roadmaps/angular/content/104-templates/101-property-binding.md index 6e9aa5b15..dbe4559ae 100644 --- a/src/roadmaps/angular/content/104-templates/101-property-binding.md +++ b/src/roadmaps/angular/content/104-templates/101-property-binding.md @@ -2,6 +2,4 @@ Property binding helps you set values for properties of HTML elements or directives. To bind to an element's property, enclose it in square brackets `[]` which causes Angular to evaluate the right-hand side of the assignment as a dynamic expression. -Free Content - -Angular Official Website +- [Angular Official Website](https://angular.io/guide/property-binding) diff --git a/src/roadmaps/angular/content/104-templates/102-template-statements.md b/src/roadmaps/angular/content/104-templates/102-template-statements.md index d28731e60..5e0c39ee9 100644 --- a/src/roadmaps/angular/content/104-templates/102-template-statements.md +++ b/src/roadmaps/angular/content/104-templates/102-template-statements.md @@ -2,6 +2,4 @@ Template statements are methods or properties that you can use in your HTML to respond to user events. With template statements, your application can engage users through actions such as displaying dynamic content or submitting forms. Enclose the event in `()` which causes Angular to evaluate the right hand side of the assignment as one or more template statements chained together using semicolon `;`. -Free Content - -Angular Official Website +- [Angular Official Website](https://angular.io/guide/template-statements) diff --git a/src/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md b/src/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md index 0e7f1f7d0..e00ef4af1 100644 --- a/src/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md +++ b/src/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md @@ -7,6 +7,4 @@ In an Angular template, a binding creates a live connection between view and the - **event**: lets you listen for and respond to user actions such as keystrokes, mouse movements, clicks, and touches. - **data**: It's a combination of property and event binding and helps you share data between components. -Free Content - -Angular Official Website +- [Angular Official Website](https://angular.io/guide/binding-overview) diff --git a/src/roadmaps/angular/content/104-templates/104-reference-vars.md b/src/roadmaps/angular/content/104-templates/104-reference-vars.md index fba486787..09b63b784 100644 --- a/src/roadmaps/angular/content/104-templates/104-reference-vars.md +++ b/src/roadmaps/angular/content/104-templates/104-reference-vars.md @@ -2,6 +2,4 @@ Template reference variables help you use data from one part of a template in another part of the template. A template variable can refer to a DOM element within a template, component or directive. In the template, use the hash symbol, `#`, to declare a template reference variable. -Free Content - -Angular Official Website +- [Angular Official Website](https://angular.io/guide/template-reference-variables) diff --git a/src/roadmaps/angular/content/104-templates/105-input-output.md b/src/roadmaps/angular/content/104-templates/105-input-output.md index fcb518cb5..0fc7a6e36 100644 --- a/src/roadmaps/angular/content/104-templates/105-input-output.md +++ b/src/roadmaps/angular/content/104-templates/105-input-output.md @@ -2,6 +2,4 @@ `@Input()` and `@Output()` give a child component a way to communicate with its parent component. `@Input()` lets a parent component update data in the child component. Conversely, `@Output()` lets the child send data to a parent component. -Free Content - -Angular Official Website +- [Angular Official Website](https://angular.io/guide/inputs-outputs) diff --git a/src/roadmaps/angular/content/104-templates/index.md b/src/roadmaps/angular/content/104-templates/index.md new file mode 100644 index 000000000..a74257dde --- /dev/null +++ b/src/roadmaps/angular/content/104-templates/index.md @@ -0,0 +1,5 @@ +# Templates + +A template is a form of HTML that tells Angular how to render the component. + +- [Introduction to Components and Templates](https://angular.io/guide/architecture-components) diff --git a/src/roadmaps/angular/content/104-templates/readme.md b/src/roadmaps/angular/content/104-templates/readme.md deleted file mode 100644 index cbdc54b18..000000000 --- a/src/roadmaps/angular/content/104-templates/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# Templates - -A template is a form of HTML that tells Angular how to render the component. - -Introduction to Components and Templates diff --git a/src/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md b/src/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md index 10dc71018..4ce23f7ad 100644 --- a/src/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md +++ b/src/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md @@ -5,6 +5,5 @@ SKDirectives are classes that add additional behavior to elements in your Angula `NgClass` Adds and removes a set of CSS classes. | `NgStyle` Adds and removes a set of HTML styles. | `NgModel` Adds two-way data binding to an HTML form element. -Free Content -Understanding BuiltIn Directives -BuiltIn Directives Types \ No newline at end of file +- [Understanding BuiltIn Directives](https://angular.io/guide/built-in-directives) +- [BuiltIn Directives Types](https://thinkster.io/tutorials/angular-2-directives) \ No newline at end of file diff --git a/src/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md b/src/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md index b38dc6973..5db4c10e3 100644 --- a/src/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md +++ b/src/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md @@ -5,6 +5,5 @@ Use pipes to transform strings, currency amounts, dates, and other data for disp `DatePipe` | `UpperCasePipe` | `LowerCasePipe` | `CurrencyPipe` | `DecimalPipe` | `PercentPipe` -Free Content -Understanding BuiltIn Pipes -BuiltIn Pipes - exampls \ No newline at end of file +- [Understanding BuiltIn Pipes](https://angular.io/guide/pipes) +- [BuiltIn Pipes - exampls](https://codecraft.tv/courses/angular/pipes/built-in-pipes/) \ No newline at end of file diff --git a/src/roadmaps/angular/content/105-rendering-topics/102-change-detection.md b/src/roadmaps/angular/content/105-rendering-topics/102-change-detection.md index 2d8cea788..8f97f24de 100644 --- a/src/roadmaps/angular/content/105-rendering-topics/102-change-detection.md +++ b/src/roadmaps/angular/content/105-rendering-topics/102-change-detection.md @@ -2,6 +2,5 @@ Change detection is the process through which Angular checks to see whether your application state has changed, and if any DOM needs to be updated. At a high level, Angular walks your components from top to bottom, looking for changes. Angular runs its change detection mechanism periodically so that changes to the data model are reflected in an application’s view. Change detection can be triggered either manually or through an asynchronous event -Free Content -Understanding Change detection -4 Runtime Performance Optimizations ( Change detection ) \ No newline at end of file +- [Understanding Change detection](https://angular.io/guide/change-detection) +- [4 Runtime Performance Optimizations ( Change detection )](https://www.youtube.com/watch?v=f8sA-i6gkGQ) \ No newline at end of file diff --git a/src/roadmaps/angular/content/105-rendering-topics/readme.md b/src/roadmaps/angular/content/105-rendering-topics/index.md similarity index 100% rename from src/roadmaps/angular/content/105-rendering-topics/readme.md rename to src/roadmaps/angular/content/105-rendering-topics/index.md diff --git a/src/roadmaps/angular/content/106-forms/100-reactive-forms.md b/src/roadmaps/angular/content/106-forms/100-reactive-forms.md index f2d47debc..0ce55a5c6 100644 --- a/src/roadmaps/angular/content/106-forms/100-reactive-forms.md +++ b/src/roadmaps/angular/content/106-forms/100-reactive-forms.md @@ -2,8 +2,7 @@ Reactive Forms in angular are those which used to handle the inputs coming from the user. We can define controls by using classes such as FormGroup and FormControl. -Free Content -Reactive forms - Angular -Angular Reactive Forms -How To Use Reactive Forms in Angular -Reactive Form in Angular \ No newline at end of file +- [Reactive forms - Angular](https://angular.io/guide/reactive-forms) +- [Angular Reactive Forms](https://www.javatpoint.com/angular-reactive-forms) +- [How To Use Reactive Forms in Angular](https://www.digitalocean.com/community/tutorials/angular-reactive-forms-introduction) +- [Reactive Form in Angular](https://www.youtube.com/watch?v=8k4ctDmVn7w) \ No newline at end of file diff --git a/src/roadmaps/angular/content/106-forms/101-template-driven-forms.md b/src/roadmaps/angular/content/106-forms/101-template-driven-forms.md index bd66873fb..1fb87d9c5 100644 --- a/src/roadmaps/angular/content/106-forms/101-template-driven-forms.md +++ b/src/roadmaps/angular/content/106-forms/101-template-driven-forms.md @@ -4,8 +4,7 @@ A Template driven form is the simplest form we can build in Angular. It is mainl It uses two-way data-binding (ngModel) to create and handle the form components. -Free Content -Building a template-driven form -Template-Driven Forms -Template driven form -Template driven form Validations \ No newline at end of file +- [Building a template-driven form](https://angular.io/guide/forms) +- [Template-Driven Forms](https://codecraft.tv/courses/angular/forms/template-driven/) +- [Template driven form](https://www.youtube.com/watch?v=whr14XxB8-M) +- [Template driven form Validations](https://www.youtube.com/watch?v=cVd4ZCIXprs) \ No newline at end of file diff --git a/src/roadmaps/angular/content/106-forms/index.md b/src/roadmaps/angular/content/106-forms/index.md new file mode 100644 index 000000000..587020590 --- /dev/null +++ b/src/roadmaps/angular/content/106-forms/index.md @@ -0,0 +1,10 @@ +# Forms + +Forms are used to handle user inputs in many applications. It enables users from entering sensitive information to performing several data entry tasks. + +Angular provides two approachs to handle user inputs trough forms: reactive and template-driven forms. + +- [Introduction to forms in Angular](https://angular.io/guide/forms-overview) +- [Angular Forms](https://www.w3schools.com/angular/angular_forms.asp) +- [Angular Forms Tutorial](https://www.youtube.com/watch?v=-bGgjgx3fGs) +- [Building Forms in Angular Apps](https://www.youtube.com/watch?v=hAaoPOx_oIw) diff --git a/src/roadmaps/angular/content/106-forms/readme.md b/src/roadmaps/angular/content/106-forms/readme.md deleted file mode 100644 index 86feb8ed7..000000000 --- a/src/roadmaps/angular/content/106-forms/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Forms - -Forms are used to handle user inputs in many applications. It enables users from entering sensitive information to performing several data entry tasks. - -Angular provides two approachs to handle user inputs trough forms: reactive and template-driven forms. - -Free Content -Introduction to forms in Angular -Angular Forms -Angular Forms Tutorial -Building Forms in Angular Apps diff --git a/src/roadmaps/angular/content/107-routing/101-router-outlets.md b/src/roadmaps/angular/content/107-routing/101-router-outlets.md index 81884c1fc..368e0eb3d 100644 --- a/src/roadmaps/angular/content/107-routing/101-router-outlets.md +++ b/src/roadmaps/angular/content/107-routing/101-router-outlets.md @@ -4,5 +4,4 @@ The router-outlet is a directive that's available from the @angular/router packa Thanks to the router outlet, your app will have multiple views/pages and the app template acts like a shell of your application. Any element, you add to the shell will be rendered in each view, only the part marked by the router outlet will be changed between views. -Free Content -Understanding Router Outlets +- [Understanding Router Outlets](https://angular.io/api/router/RouterOutle) diff --git a/src/roadmaps/angular/content/107-routing/104-guards.md b/src/roadmaps/angular/content/107-routing/104-guards.md index b0f20c136..f0e41c187 100644 --- a/src/roadmaps/angular/content/107-routing/104-guards.md +++ b/src/roadmaps/angular/content/107-routing/104-guards.md @@ -4,9 +4,9 @@ Angular route guards are interfaces provided by Angular which, when implemented, Some types of angular guards are `CanActivate`, `CanActivateChild`, `CanLoad`, `CanDeactivate` and `Resolve`. -Angular Official Website -Can Activate Guard -Can Activate Child -Can Deactivate -Angular Can Load -Can Match +- [Angular Official Website](https://angular.io/api/router) +- [Can Activate Guard](https://angular.io/api/router/CanActivate) +- [Can Activate Child](https://angular.io/api/router/CanActivateChild) +- [Can Deactivate](https://angular.io/api/router/CanDeactivate) +- [Angular Can Load](https://angular.io/api/router/CanLoad) +- [Can Match](https://angular.io/api/router/CanMatch) diff --git a/src/roadmaps/angular/content/107-routing/105-lazy-loading.md b/src/roadmaps/angular/content/107-routing/105-lazy-loading.md index 67a72d995..316386e0d 100644 --- a/src/roadmaps/angular/content/107-routing/105-lazy-loading.md +++ b/src/roadmaps/angular/content/107-routing/105-lazy-loading.md @@ -2,6 +2,5 @@ Lazy loading is a technique in Angular that allows you to load JavaScript components asynchronously when a specific route is activated. It improves the application load time speed by splitting the application into several bundles. The bundles are loaded as required when the user navigates through the app. -Free Content -What is Lazy loading ? - Angular.io -Angular Tutorial - Lazy Loading +- [What is Lazy loading ? - Angular.io ](https://angular.io/guide/lazy-loading-ngmodules) +- [Angular Tutorial - Lazy Loading](https://www.youtube.com/watch?v=JjIQq9lh-Bw) diff --git a/src/roadmaps/angular/content/107-routing/index.md b/src/roadmaps/angular/content/107-routing/index.md new file mode 100644 index 000000000..bc7f904e0 --- /dev/null +++ b/src/roadmaps/angular/content/107-routing/index.md @@ -0,0 +1,7 @@ +# Routing + +Routing in Angular allows the users to create a single-page application with multiple views and navigation between them. Users can switch between these views without losing the application state and properties. + +- [What is Routing ? - Geeksforgeeks ](https://www.geeksforgeeks.org/routing-in-angular-9-10/) +- [Explanation of Routing ? - Angular.io ](https://angular.io/guide/router) +- [Angular Tutorial - Routing and Navigation](https://www.youtube.com/watch?v=Nehk4tBxD4o) diff --git a/src/roadmaps/angular/content/107-routing/readme.md b/src/roadmaps/angular/content/107-routing/readme.md deleted file mode 100644 index 06b729f8e..000000000 --- a/src/roadmaps/angular/content/107-routing/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Routing - -Routing in Angular allows the users to create a single-page application with multiple views and navigation between them. Users can switch between these views without losing the application state and properties. - -Free Content -What is Routing ? - Geeksforgeeks -Explanation of Routing ? - Angular.io -Angular Tutorial - Routing and Navigation diff --git a/src/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md b/src/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md index 8563e8280..b9cb423e6 100644 --- a/src/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md +++ b/src/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md @@ -2,7 +2,6 @@ Dependency Injection (DI) is a design pattern that creates the dependencies of a class and provides those objects to the class when required. Angular being a nice framework, provides a built-in dependency injection mechanism that creates and provides a runtime version of a dependency value using dependency injectors. -Free Content -What is Dependency Injection ? - angular.io -Introduction of Dependency injection +- [What is Dependency Injection ? - angular.io ](https://angular.io/guide/dependency-injection) +- [Introduction of Dependency injection](https://www.youtube.com/watch?v=OFPIGlxunL0) diff --git a/src/roadmaps/angular/content/108-services-remote-data/index.md b/src/roadmaps/angular/content/108-services-remote-data/index.md new file mode 100644 index 000000000..7eb8fcca4 --- /dev/null +++ b/src/roadmaps/angular/content/108-services-remote-data/index.md @@ -0,0 +1,6 @@ +# Services + +Components shouldn't fetch or save data directly and shouldn't knowingly present fake data. They should focus on presenting data and delegate data access to a service. Service is where all the remote API calls exist to retrieve and provide data to components. + +- [Adding Services in Angular](https://angular.io/tutorial/toh-pt4) +- [Get Data from Server](https://angular.io/tutorial/toh-pt6) diff --git a/src/roadmaps/angular/content/108-services-remote-data/readme.md b/src/roadmaps/angular/content/108-services-remote-data/readme.md deleted file mode 100644 index 0fd240f20..000000000 --- a/src/roadmaps/angular/content/108-services-remote-data/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Services - -Components shouldn't fetch or save data directly and shouldn't knowingly present fake data. They should focus on presenting data and delegate data access to a service. Service is where all the remote API calls exist to retrieve and provide data to components. - -Free Content -Adding Services in Angular -Get Data from Server diff --git a/src/roadmaps/angular/content/109-lifecycle-hooks.md b/src/roadmaps/angular/content/109-lifecycle-hooks.md index d9d100762..c3045ad28 100644 --- a/src/roadmaps/angular/content/109-lifecycle-hooks.md +++ b/src/roadmaps/angular/content/109-lifecycle-hooks.md @@ -8,6 +8,5 @@ The following life cycle hooks of angular are : `OnChanges` , `OnInit` , `DoCheck` , `OnDestroy` , `AfterContentInit` , `AfterContentChecked` , `AfterViewInit` , `AfterViewChecked` -Free Content -What is Life Cycle Hooks? - Angular.io -The life cycle hooks of angular - Blog +- [What is Life Cycle Hooks? - Angular.io ](https://angular.io/guide/lifecycle-hooks) +- [The life cycle hooks of angular - Blog ](https://blog.logrocket.com/angular-lifecycle-hooks/) diff --git a/src/roadmaps/angular/content/110-state-management/100-ngxs.md b/src/roadmaps/angular/content/110-state-management/100-ngxs.md index 223125cb3..cbbaa3826 100644 --- a/src/roadmaps/angular/content/110-state-management/100-ngxs.md +++ b/src/roadmaps/angular/content/110-state-management/100-ngxs.md @@ -2,8 +2,7 @@ Ngxs is a state management pattern for the Angular framework. It acts as a single source of truth for our application. Ngxs is very simple and easily implementable. It reduce lots of boilerplate code . It is a replacement for Ngrx. In Ngrx we are creating state, action, reducer, and effects but in Ngxs, we are creating only state and actions instead of all of this. Like Ngrx, Ngxs is also asynchronous and when we dispatch any action we can get a response back. -Free Content -What is NGXS ? - Ngxs.io -Details about NGXS - Medium -Practise of NGXS +- [What is NGXS ? - Ngxs.io ](https://www.ngxs.io/) +- [Details about NGXS - Medium ](https://medium.com/@knoldus/introduction-to-ngxs-state-management-pattern-library-for-angular-ec76f681ceba) +- [Practise of NGXS](https://www.youtube.com/watch?v=SGj11j4hxmg) diff --git a/src/roadmaps/angular/content/110-state-management/101-ngrx.md b/src/roadmaps/angular/content/110-state-management/101-ngrx.md index a4bd256e7..7d2ffb57a 100644 --- a/src/roadmaps/angular/content/110-state-management/101-ngrx.md +++ b/src/roadmaps/angular/content/110-state-management/101-ngrx.md @@ -1,8 +1,7 @@ # Ngrx Ngrx is a group of Angular libraries for reactive extensions that implements the Redux pattern and it’s supercharged with RXJS. -Free Content -What is NGRX ? - ngrx.io -Details about NGRX - Medium -Practise of NGRX +- [What is NGRX ? - ngrx.io ](https://ngrx.io/) +- [Details about NGRX - Medium ](https://ahmedrebai.medium.com/introduction-to-state-management-with-ngrx-and-angular-91f4ff27ec9f) +- [Practise of NGRX](https://www.youtube.com/watch?v=f97ICOaekNU) diff --git a/src/roadmaps/react/content/106-state-management/readme.md b/src/roadmaps/angular/content/110-state-management/index.md similarity index 61% rename from src/roadmaps/react/content/106-state-management/readme.md rename to src/roadmaps/angular/content/110-state-management/index.md index 6f761619d..1bb6d0f83 100644 --- a/src/roadmaps/react/content/106-state-management/readme.md +++ b/src/roadmaps/angular/content/110-state-management/index.md @@ -2,6 +2,6 @@ Application state management is the process of maintaining knowledge of an application's inputs across multiple related data flows that form a complete business transaction -- or a session -- to understand the condition of the app at any given moment. In computer science, an input is information put into the program by the user and state refers to the condition of an application according to its stored inputs -- saved as variables or constants. State can also be described as the collection of preserved information that forms a complete session. -Free Content -What is State Management? -Overview of State in React +- [What is State Management?](https://www.techtarget.com/searchapparchitecture/definition/state-management) +- [ Angular state management made simple with NgRx](https://blog.logrocket.com/angular-state-management-made-simple-with-ngrx/) +- [Angular State Management with NgRx](https://www.syncfusion.com/blogs/post/angular-state-management-with-ngrx.aspx) diff --git a/src/roadmaps/angular/content/110-state-management/readme.md b/src/roadmaps/angular/content/110-state-management/readme.md deleted file mode 100644 index 3bb91f719..000000000 --- a/src/roadmaps/angular/content/110-state-management/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# State Management - -Application state management is the process of maintaining knowledge of an application's inputs across multiple related data flows that form a complete business transaction -- or a session -- to understand the condition of the app at any given moment. In computer science, an input is information put into the program by the user and state refers to the condition of an application according to its stored inputs -- saved as variables or constants. State can also be described as the collection of preserved information that forms a complete session. - -Free Content - -What is State Management? - Angular state management made simple with NgRx -Angular State Management with NgRx diff --git a/src/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md b/src/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md index e3891c2b8..3aa1303c7 100644 --- a/src/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md +++ b/src/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md @@ -4,6 +4,5 @@ Directives are the functions that will execute whenever the Angular compiler fin From the core concept, Angular directives are categorized into three categories: Attribute Directives, Structural Directives, and Component Directives. -Free Content -Create a custom directive - Freecodecamp -Create a custom directive video for Beginners \ No newline at end of file +- [Create a custom directive - Freecodecamp](https://www.freecodecamp.org/news/angular-directives-learn-how-to-use-or-create-custom-directives-in-angular-c9b133c24442/) +- [Create a custom directive video for Beginners](https://www.youtube.com/watch?v=AoN56g6UAsE) \ No newline at end of file diff --git a/src/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md b/src/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md index 256134a02..b8d7e752c 100644 --- a/src/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md +++ b/src/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md @@ -2,6 +2,5 @@ Pipes to transform strings, currency amounts, dates, and other data for display. Pipes are simple functions in template expressions to accept an input value and return a transformed value. Pipes are helpful because you can use them throughout your application while only declaring each pipe once. For example, you would use a pipe to show the date as April 15, 1988, rather than the raw string format. -Free Content -Create a custom pipe - angular.io -Create a custom pipe video for Beginners \ No newline at end of file +- [Create a custom pipe - angular.io](https://angular.io/guide/pipes-custom-data-trans) +- [Create a custom pipe video for Beginners](https://www.youtube.com/watch?v=P2587FN4Y0w) \ No newline at end of file diff --git a/src/roadmaps/angular/content/112-creating-a-custom-x/102-library.md b/src/roadmaps/angular/content/112-creating-a-custom-x/102-library.md index 32c225a1e..a0b309fca 100644 --- a/src/roadmaps/angular/content/112-creating-a-custom-x/102-library.md +++ b/src/roadmaps/angular/content/112-creating-a-custom-x/102-library.md @@ -2,5 +2,4 @@ Use the Angular CLI and the npm package manager to build and publish your library as an npm package. -Free Content -Angular Website +- [Angular Website](https://angular.io/guide/creating-libraries) diff --git a/src/roadmaps/angular/content/112-creating-a-custom-x/readme.md b/src/roadmaps/angular/content/112-creating-a-custom-x/index.md similarity index 100% rename from src/roadmaps/angular/content/112-creating-a-custom-x/readme.md rename to src/roadmaps/angular/content/112-creating-a-custom-x/index.md diff --git a/src/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md b/src/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md index ec8785101..8ee7c92f9 100644 --- a/src/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md +++ b/src/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md @@ -2,6 +2,5 @@ Angular Universal also known as server-side rendering is tool which allows server to pre-render Angular application while user hits your website for first time. -Free Content -Angular Website -Github Repository +- [Angular Website](https://angular.io/guide/universal) +- [Github Repository](https://github.com/angular/universal) diff --git a/src/roadmaps/angular/content/113-angular-ssr/readme.md b/src/roadmaps/angular/content/113-angular-ssr/index.md similarity index 61% rename from src/roadmaps/angular/content/113-angular-ssr/readme.md rename to src/roadmaps/angular/content/113-angular-ssr/index.md index ef06eee07..fd9552d6c 100644 --- a/src/roadmaps/angular/content/113-angular-ssr/readme.md +++ b/src/roadmaps/angular/content/113-angular-ssr/index.md @@ -2,5 +2,5 @@ A normal Angular application executes in the browser, rendering pages in the DOM in response to user actions. Angular Universal executes on the server, generating static application pages that later get bootstrapped on the client. This means that the application generally renders more quickly, giving users a chance to view the application layout before it becomes fully interactive. -Angular Universal -Rendering on the Web +- [Angular Universal](https://angular.io/guide/universal) +- [Rendering on the Web](https://web.dev/rendering-on-the-web/) diff --git a/src/roadmaps/angular/content/114-angular-ssg/100-scully.md b/src/roadmaps/angular/content/114-angular-ssg/100-scully.md index e042c0c02..18937495a 100644 --- a/src/roadmaps/angular/content/114-angular-ssg/100-scully.md +++ b/src/roadmaps/angular/content/114-angular-ssg/100-scully.md @@ -2,6 +2,5 @@ Scully is the best static site generator for Angular projects looking to embrace the Jamstack. It will use your application and will create a static index. html for each of your pages/routes. -Free Content -Scully Website -Github Repository +- [Scully Website](https://scully.io/) +- [Github Repository](https://github.com/scullyio/scully) diff --git a/src/roadmaps/angular/content/114-angular-ssg/readme.md b/src/roadmaps/angular/content/114-angular-ssg/index.md similarity index 100% rename from src/roadmaps/angular/content/114-angular-ssg/readme.md rename to src/roadmaps/angular/content/114-angular-ssg/index.md diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md b/src/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md index 4d02de04c..fa42a4d56 100644 --- a/src/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md +++ b/src/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md @@ -2,6 +2,5 @@ An Angular Pipe is a special function that is called from a Component template. Its purpose is to transform a value: You pass a value to the Pipe, the Pipe computes a new value and returns it. -Free Content -Angular.io Website -Testing-Angular.com +- [Angular.io Website](https://angular.io/guide/testing-pipes) +- [Testing-Angular.com](https://testing-angular.com/testing-pipes/) diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md b/src/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md index 2ab195be6..f11b1a364 100644 --- a/src/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md +++ b/src/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md @@ -2,6 +2,5 @@ In an Angular application, Services are responsible for fetching, storing and processing data. Services are singletons, meaning there is only one instance of a Service during runtime. They are fit for central data storage, HTTP and WebSocket communication as well as data validation. -Free Content -Angular.io Website -Testing-Angular.com +- [Angular.io Website](https://angular.io/guide/testing-services) +- [Testing-Angular.com](https://testing-angular.com/testing-services/) diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md b/src/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md index 4ba81acce..8401ac1f8 100644 --- a/src/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md +++ b/src/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md @@ -2,5 +2,4 @@ Angular processes all data bindings once for each JavaScript event cycle, from the root of the application component tree through all child components. Data binding plays an important role in communication between a template and its component, and is also important for communication between parent and child components. -Free Content -Angular.io Website +- [Angular.io Website](https://angular.io/guide/architecture-components#:~:text=Angular%20processes%20all%20data%20bindings,between%20parent%20and%20child%20components.) diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md b/src/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md index f0249ba3a..0632bbcf9 100644 --- a/src/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md +++ b/src/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md @@ -2,6 +2,5 @@ Directives are classes that add new behavior or modify the existing behavior to the elements in the template. Basically directives are used to manipulate the DOM, for example adding/removing the element from DOM or changing the appearance of the DOM elements. -Free Content -Angular.io Website -tesing-angular Website +- [Angular.io Website](https://angular.io/guide/testing-attribute-directives) +- [tesing-angular Website](https://testing-angular.com/testing-directives/) diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md b/src/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md index ef37e5659..bd4031303 100644 --- a/src/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md +++ b/src/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md @@ -2,5 +2,4 @@ With a component template , you can save and reuse component processes and properties and create components from them; template-based components inherit the template's properties and process. -Free Content -Angular.io Website +- [Angular.io Website](https://angular.io/guide/architecture-components) diff --git a/src/roadmaps/angular/content/115-testing-angular-apps/readme.md b/src/roadmaps/angular/content/115-testing-angular-apps/index.md similarity index 100% rename from src/roadmaps/angular/content/115-testing-angular-apps/readme.md rename to src/roadmaps/angular/content/115-testing-angular-apps/index.md diff --git a/src/roadmaps/angular/content/readme.md b/src/roadmaps/angular/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/angular/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md index e9416c556..4e29c8fb2 100644 --- a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md +++ b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md @@ -2,5 +2,5 @@ C# is a modern coding language that was developed by Microsoft that focuses on applying the coding style to C++ and making it so that way it's more condensed and simple. It's similar to Java by both being static, strong, and manifestive languages. Both use the System's prebuilt class to do certain features like printing output to the screen, etc.C#, like Java, also contains a garbage collection, which removes lower-level maintenance code from the programmer. -C# official website? -The Beginner's Guide to C# +- [C# official website?](https://learn.microsoft.com/en-us/dotnet/csharp//) +- [The Beginners Guide to C#](https://www.w3schools.com/CS/index.php) diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/102-dotnet-cli.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/102-dotnet-cli.md index a173373fb..a9dc4b655 100644 --- a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/102-dotnet-cli.md +++ b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/102-dotnet-cli.md @@ -2,6 +2,5 @@ .NET CLI is the command-line interface (CLI) for the .NET platform. It is a tool that provides a common interface for running .NET Core command-line tools and utilities. .NET Core is a cross-platform, open-source, and modular version of the .NET framework, and the .NET CLI provides a way to interact with it from the command line. -Free Content -Microsoft - .NET CLI overview -Intro To The .NET CLI \ No newline at end of file +- [Microsoft - .NET CLI overview](https://learn.microsoft.com/en-us/dotnet/core/tools/) +- [Intro To The .NET CLI](https://youtu.be/RQLzp2Z8-BE) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/readme.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/100-basics-of-csharp/readme.md rename to src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md index f7f276bfe..67d86312a 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md @@ -2,8 +2,7 @@ [Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. -Free Content -Learn Git on the command line -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes +- [Learn Git on the command line](https://github.com/jlord/git-it-electron) +- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/102-vcs-hosting-services.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/102-vcs-hosting-services.md index a9357ef87..0ae7a7016 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/102-vcs-hosting-services.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/102-vcs-hosting-services.md @@ -2,7 +2,6 @@ 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 -GitHub: Where the world builds software -GitLab: Iterate faster, innovate together -BitBucket: The Git solution for professional teams +- [GitHub: Where the world builds software](https://github.com) +- [GitLab: Iterate faster, innovate together](https://gitlab.com) +- [BitBucket: The Git solution for professional teams](https://bitbucket.com) diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/103-http-https.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/103-http-https.md index 60ff5dc54..3acd080dd 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/103-http-https.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/103-http-https.md @@ -8,14 +8,12 @@ HTTPS (**H**ypertext **T**ransfer **P**rotocol **S**ecure) is the secure version `HTTPS = HTTP + SSL/TLS` -Free Content -What is HTTP? -An overview of HTTP -Journey to HTTP/2 -HTTP/3 From A To Z: Core Concepts -HTTP Crash Course & Exploration - -What is HTTPS? -Why HTTPS Matters -Enabling HTTPS on Your Servers -How HTTPS works (comic) +- [What is HTTP?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) +- [An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) +- [Journey to HTTP/2](https://kamranahmed.info/blog/2016/08/13/http-in-depth) +- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/) +- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0) +- [What is HTTPS?](https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/) +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Enabling HTTPS on Your Servers](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https) +- [How HTTPS works (comic)](https://howhttps.works/) diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md index 10a8fdfa8..53404652a 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md @@ -2,9 +2,8 @@ As the name indicates, a **Data Structure** is a way of organizing the data in the **memory** so it can be used efficiently. Some common data structures are array, linked list, stack, hashtable, queue, tree, heap, and graph. -Free Content -What are Data Structures? - Data Structures and Algorithms -Data Structures Illustrated -C# resources -Interview Questions about Data Structures +- [What are Data Structures?](https://www.geeksforgeeks.org/data-structures) +- [ Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial) +- [Data Structures Illustrated](https://www.youtube.com/watch?v=9rhT3P1MDHk&list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY) +- [C# resources](https://dev.to/adavidoaiei/fundamental-data-structures-and-algorithms-in-c-4ocf) +- [Interview Questions about Data Structures](https://www.csharpstar.com/csharp-algorithms/) diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/readme.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/101-general-development-skills/readme.md rename to src/roadmaps/aspnet-core/content/101-general-development-skills/index.md diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md index 14de4b1e2..59e905b73 100644 --- a/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md +++ b/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md @@ -2,4 +2,4 @@ A stored procedure is a pre-compiled collection of SQL statements that can be executed on a database server. Stored procedures are typically used to perform specific tasks, such as retrieving data from a database, inserting or updating data, or performing complex calculations. They are stored on the database server and can be called or executed from a client application or other stored procedures. Stored procedures can improve database performance by reducing the amount of SQL code needed to be executed and allowing developers to reuse common pieces of code. They can also provide security by allowing database administrators to control which users have access to specific stored procedures. -Stored Procedure Tutorial +- [Stored Procedure Tutorial](https://www.w3schools.com/sql/sql_stored_procedures.asp) diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md index e0d141c59..5d601d583 100644 --- a/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md +++ b/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md @@ -2,4 +2,4 @@ Database constraints are rules that are used to limit the data that can be stored in a database table. These constraints can be used to ensure the integrity and accuracy of the data in the table, and they can be used to enforce business rules or other requirements. For example, a constraint might be used to ensure that a column only contains positive numbers, or to ensure that a column always has a unique value. Constraints can be specified at the time a table is created, or they can be added to an existing table. Some common types of constraints include primary keys, foreign keys, and NOT NULL constraints. -SQL Constraints +- [SQL Constraints](https://www.w3schools.com/sql/sql_constraints.asp) diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/readme.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/102-database-fundamentals/readme.md rename to src/roadmaps/aspnet-core/content/102-database-fundamentals/index.md diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md index a73b10d26..c4965d02c 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md @@ -6,4 +6,4 @@ MVC is an architectural design pattern used for developing applications, specifi - **View** - Handles UI part of the applications (data presentation). - **Controller** - Handles request flow, and acts as an intermediary between view and model. -MVC Official Documentation +- [MVC Official Documentation](https://learn.microsoft.com/en-us/aspnet/core/mvc/overview?WT.mc_id=dotnet-35129-website&view=aspnetcore-7.0) diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/readme.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/readme.md rename to src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/readme.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/readme.md rename to src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md diff --git a/src/roadmaps/aspnet-core/content/104-orm/readme.md b/src/roadmaps/aspnet-core/content/104-orm/index.md similarity index 68% rename from src/roadmaps/aspnet-core/content/104-orm/readme.md rename to src/roadmaps/aspnet-core/content/104-orm/index.md index 3690c745f..308ff891e 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/readme.md +++ b/src/roadmaps/aspnet-core/content/104-orm/index.md @@ -2,4 +2,4 @@ ORM stands for Object-Relational Mapping, and it is a technique that allows a developer to work with a database using objects. It is a way of abstracting the database so that the developer can think in terms of objects, rather than tables and SQL queries. This can make it easier to write and maintain code, as well as improve the performance of the application. -ORM (Object Relational Mapping) +- [ORM (Object Relational Mapping)](https://www.telerik.com/blogs/dotnet-basics-orm-object-relational-mapping) diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/readme.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/readme.md rename to src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/readme.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/readme.md rename to src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/readme.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/105-dependency-injection/readme.md rename to src/roadmaps/aspnet-core/content/105-dependency-injection/index.md diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/readme.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/readme.md rename to src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/readme.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/readme.md rename to src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md diff --git a/src/roadmaps/aspnet-core/content/106-caching/readme.md b/src/roadmaps/aspnet-core/content/106-caching/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/106-caching/readme.md rename to src/roadmaps/aspnet-core/content/106-caching/index.md diff --git a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/readme.md b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/107-databases/100-search-engines/readme.md rename to src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md diff --git a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/readme.md b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/107-databases/101-cloud/readme.md rename to src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/readme.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/107-databases/102-relational/readme.md rename to src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/readme.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/107-databases/103-nosql/readme.md rename to src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md diff --git a/src/roadmaps/aspnet-core/content/107-databases/readme.md b/src/roadmaps/aspnet-core/content/107-databases/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/107-databases/readme.md rename to src/roadmaps/aspnet-core/content/107-databases/index.md diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/readme.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/readme.md rename to src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/readme.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/108-log-frameworks/readme.md rename to src/roadmaps/aspnet-core/content/108-log-frameworks/index.md diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/readme.md b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/109-api-clients/100-rest/readme.md rename to src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/readme.md b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/readme.md rename to src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/readme.md b/src/roadmaps/aspnet-core/content/109-api-clients/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/109-api-clients/readme.md rename to src/roadmaps/aspnet-core/content/109-api-clients/index.md diff --git a/src/roadmaps/aspnet-core/content/110-real-time-communication/readme.md b/src/roadmaps/aspnet-core/content/110-real-time-communication/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/110-real-time-communication/readme.md rename to src/roadmaps/aspnet-core/content/110-real-time-communication/index.md diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/readme.md b/src/roadmaps/aspnet-core/content/111-object-mapping/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/111-object-mapping/readme.md rename to src/roadmaps/aspnet-core/content/111-object-mapping/index.md diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/readme.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/112-task-scheduling/readme.md rename to src/roadmaps/aspnet-core/content/112-task-scheduling/index.md diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/readme.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/readme.md rename to src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/readme.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/readme.md rename to src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md diff --git a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/readme.md b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/readme.md rename to src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md diff --git a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/readme.md b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/readme.md rename to src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md diff --git a/src/roadmaps/aspnet-core/content/113-testing/readme.md b/src/roadmaps/aspnet-core/content/113-testing/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/113-testing/readme.md rename to src/roadmaps/aspnet-core/content/113-testing/index.md diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/readme.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/readme.md rename to src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md diff --git a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/readme.md b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/readme.md rename to src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md diff --git a/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md b/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md index e08de302d..d9173bd7a 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md @@ -4,9 +4,8 @@ Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) contain The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. -Free Content -Kubernetes Website -Kubernetes Documentation -Kubernetes Crash Course for Absolute Beginners -Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care -Kubernetes: An Overview +- [Kubernetes Website](https://kubernetes.io/) +- [Kubernetes Documentation](https://kubernetes.io/docs/home/) +- [Kubernetes Crash Course for Absolute Beginners](https://www.youtube.com/watch?v=s_o8dwzRlu4) +- [Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care](https://thenewstack.io/primer-how-kubernetes-came-to-be-what-it-is-and-why-you-should-care/) +- [Kubernetes: An Overview](https://thenewstack.io/kubernetes-an-overview/) diff --git a/src/roadmaps/aspnet-core/content/114-microservices/readme.md b/src/roadmaps/aspnet-core/content/114-microservices/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/114-microservices/readme.md rename to src/roadmaps/aspnet-core/content/114-microservices/index.md diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/readme.md b/src/roadmaps/aspnet-core/content/115-ci-cd/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/115-ci-cd/readme.md rename to src/roadmaps/aspnet-core/content/115-ci-cd/index.md diff --git a/src/roadmaps/aspnet-core/content/116-client-side-libraries/readme.md b/src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/116-client-side-libraries/readme.md rename to src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/readme.md b/src/roadmaps/aspnet-core/content/117-template-engines/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/117-template-engines/readme.md rename to src/roadmaps/aspnet-core/content/117-template-engines/index.md diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/readme.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md similarity index 100% rename from src/roadmaps/aspnet-core/content/118-good-to-know-libraries/readme.md rename to src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md diff --git a/src/roadmaps/aspnet-core/content/readme.md b/src/roadmaps/aspnet-core/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/aspnet-core/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/backend/content/100-internet/100-how-does-the-internet-work.md b/src/roadmaps/backend/content/100-internet/100-how-does-the-internet-work.md index 44658e1be..76421bc2d 100644 --- a/src/roadmaps/backend/content/100-internet/100-how-does-the-internet-work.md +++ b/src/roadmaps/backend/content/100-internet/100-how-does-the-internet-work.md @@ -2,10 +2,9 @@ The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. -Free Content -The Internet Explained -How Does the Internet Work? -Introduction to Internet -How does the Internet work? -How the Internet Works in 5 Minutes -How does the internet work? (Full Course) +- [The Internet Explained](https://www.vox.com/2014/6/16/18076282/the-internet) +- [How Does the Internet Work?](http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm) +- [Introduction to Internet](/guides/what-is-internet) +- [How does the Internet work?](https://www.youtube.com/watch?v=x3c1ih2NJEg) +- [How the Internet Works in 5 Minutes](https://www.youtube.com/watch?v=7_LPdttKXPc) +- [How does the internet work? (Full Course)](https://www.youtube.com/watch?v=zN8YNNHcaZc) diff --git a/src/roadmaps/backend/content/100-internet/101-what-is-http.md b/src/roadmaps/backend/content/100-internet/101-what-is-http.md index 33ed25e6d..74a38a794 100644 --- a/src/roadmaps/backend/content/100-internet/101-what-is-http.md +++ b/src/roadmaps/backend/content/100-internet/101-what-is-http.md @@ -2,10 +2,9 @@ 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 -What is HTTP? -An overview of HTTP -Journey to HTTP/2 -HTTP/3 From A To Z: Core Concepts -HTTP/1 to HTTP/2 to HTTP/3 -HTTP Crash Course & Exploration +- [What is HTTP?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) +- [An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) +- [Journey to HTTP/2](https://kamranahmed.info/blog/2016/08/13/http-in-depth) +- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/) +- [HTTP/1 to HTTP/2 to HTTP/3](https://www.youtube.com/watch?v=a-sBfyiXysI) +- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0) diff --git a/src/roadmaps/backend/content/100-internet/102-browsers-and-how-they-work.md b/src/roadmaps/backend/content/100-internet/102-browsers-and-how-they-work.md index 2202067c8..95e7813b9 100644 --- a/src/roadmaps/backend/content/100-internet/102-browsers-and-how-they-work.md +++ b/src/roadmaps/backend/content/100-internet/102-browsers-and-how-they-work.md @@ -2,7 +2,6 @@ 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 -How Browsers Work -Role of Rendering Engine in Browsers -Populating the Page: How Browsers Work +- [How Browsers Work](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/) +- [Role of Rendering Engine in Browsers](https://www.browserstack.com/guide/browser-rendering-engine) +- [Populating the Page: How Browsers Work](https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work) diff --git a/src/roadmaps/backend/content/100-internet/103-dns-and-how-it-works.md b/src/roadmaps/backend/content/100-internet/103-dns-and-how-it-works.md index c11c882f7..8f174dc84 100644 --- a/src/roadmaps/backend/content/100-internet/103-dns-and-how-it-works.md +++ b/src/roadmaps/backend/content/100-internet/103-dns-and-how-it-works.md @@ -2,9 +2,8 @@ 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 -What is DNS? -How DNS works (comic) -DNS and How does it Work? -DNS Records -Complete DNS mini-series +- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/) +- [How DNS works (comic)](https://howdns.works/) +- [DNS and How does it Work?](https://www.youtube.com/watch?v=Wj0od2ag5sk) +- [DNS Records](https://www.youtube.com/watch?v=7lxgpKh_fRY) +- [Complete DNS mini-series](https://www.youtube.com/watch?v=zEmUuNFBgN8&list=PLTk5ZYSbd9MhMmOiPhfRJNW7bhxHo4q-K) diff --git a/src/roadmaps/backend/content/100-internet/104-what-is-domain-name.md b/src/roadmaps/backend/content/100-internet/104-what-is-domain-name.md index 1fb0a759e..f1cbe7f5d 100644 --- a/src/roadmaps/backend/content/100-internet/104-what-is-domain-name.md +++ b/src/roadmaps/backend/content/100-internet/104-what-is-domain-name.md @@ -2,7 +2,6 @@ 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 -What is a Domain Name? -What is a Domain Name? | Domain name vs. URL -A Beginners Guide to How Domain Names Work +- [What is a Domain Name?](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name) +- [What is a Domain Name? | Domain name vs. URL](https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/) +- [A Beginners Guide to How Domain Names Work](https://www.youtube.com/watch?v=Y4cRx19nhJk) diff --git a/src/roadmaps/backend/content/100-internet/105-what-is-hosting.md b/src/roadmaps/backend/content/100-internet/105-what-is-hosting.md index 7ab9b4f76..a36020ba3 100644 --- a/src/roadmaps/backend/content/100-internet/105-what-is-hosting.md +++ b/src/roadmaps/backend/content/100-internet/105-what-is-hosting.md @@ -2,7 +2,6 @@ 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 -What Is Web Hosting? Explained -Different Types of Web Hosting Explained -Where to Host a Fullstack Project on a Budget +- [What Is Web Hosting? Explained](https://www.youtube.com/watch?v=htbY9-yggB0) +- [Different Types of Web Hosting Explained](https://www.youtube.com/watch?v=AXVZYzw8geg) +- [Where to Host a Fullstack Project on a Budget](https://www.youtube.com/watch?v=Kx_1NYYJS7Q) diff --git a/src/roadmaps/backend/content/100-internet/index.md b/src/roadmaps/backend/content/100-internet/index.md new file mode 100644 index 000000000..d00185703 --- /dev/null +++ b/src/roadmaps/backend/content/100-internet/index.md @@ -0,0 +1,9 @@ +# Internet + +The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. + +- [The Internet Explained](https://www.vox.com/2014/6/16/18076282/the-internet) +- [How Does the Internet Work?](http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm) +- [Introduction to Internet](/guides/what-is-internet) +- [How does the Internet work?](https://www.youtube.com/watch?v=x3c1ih2NJEg) +- [How the Internet Works in 5 Minutes](https://www.youtube.com/watch?v=7_LPdttKXPc) diff --git a/src/roadmaps/backend/content/100-internet/readme.md b/src/roadmaps/backend/content/100-internet/readme.md deleted file mode 100644 index 6573fbf08..000000000 --- a/src/roadmaps/backend/content/100-internet/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Internet - -The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. - -Free Content -The Internet Explained -How Does the Internet Work? -Introduction to Internet -How does the Internet work? -How the Internet Works in 5 Minutes diff --git a/src/roadmaps/backend/content/101-basic-frontend/100-html.md b/src/roadmaps/backend/content/101-basic-frontend/100-html.md index b2261009e..7a2d066e5 100644 --- a/src/roadmaps/backend/content/101-basic-frontend/100-html.md +++ b/src/roadmaps/backend/content/101-basic-frontend/100-html.md @@ -2,9 +2,8 @@ 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 -W3Schools: Learn HTML -Codecademy - Learn HTML -Interactive HTML Course -HTML Full Course - Build a Website Tutorial -HTML Tutorial for Beginners: HTML Crash Course +- [W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp) +- [Codecademy - Learn HTML](https://www.codecademy.com/learn/learn-html) +- [Interactive HTML Course](https://github.com/denysdovhan/learnyouhtml) +- [HTML Full Course - Build a Website Tutorial](https://www.youtube.com/watch?v=pQN-pnXPaVg) +- [HTML Tutorial for Beginners: HTML Crash Course](https://www.youtube.com/watch?v=qz0aGYrrlhU) diff --git a/src/roadmaps/backend/content/101-basic-frontend/101-css.md b/src/roadmaps/backend/content/101-basic-frontend/101-css.md index 0e6ef79bf..1eef55ec4 100644 --- a/src/roadmaps/backend/content/101-basic-frontend/101-css.md +++ b/src/roadmaps/backend/content/101-basic-frontend/101-css.md @@ -2,14 +2,13 @@ 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 -W3Schools — Learn CSS -freeCodeCamp — Responsive Web Design -Learn to Code HTML & CSS -What The Flexbox! -Learn CSS | Codecademy -Learn Intermediate CSS | Codecademy -CSS Crash Course For Absolute Beginners -HTML and CSS Tutorial -CSS Masterclass - Tutorial & Course for Beginners +- [W3Schools — Learn CSS](https://www.w3schools.com/css/) +- [freeCodeCamp — Responsive Web Design](https://www.freecodecamp.org/learn/2022/responsive-web-design) +- [Learn to Code HTML & CSS](https://learn.shayhowe.com/html-css/building-your-first-web-page/) +- [What The Flexbox!](https://flexbox.io/) +- [Learn CSS | Codecademy](https://www.codecademy.com/learn/learn-css) +- [Learn Intermediate CSS | Codecademy](https://www.codecademy.com/learn/learn-intermediate-css) +- [CSS Crash Course For Absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI) +- [HTML and CSS Tutorial](https://www.youtube.com/watch?v=D-h8L5hgW-w) +- [CSS Masterclass - Tutorial & Course for Beginners](https://www.youtube.com/watch?v=FqmB-Zj2-PA) diff --git a/src/roadmaps/backend/content/101-basic-frontend/102-javascript.md b/src/roadmaps/backend/content/101-basic-frontend/102-javascript.md index 58d071d68..1e7ecee5a 100644 --- a/src/roadmaps/backend/content/101-basic-frontend/102-javascript.md +++ b/src/roadmaps/backend/content/101-basic-frontend/102-javascript.md @@ -8,9 +8,9 @@ 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 -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -Exploring JS: JavaScript books for programmers -JavaScript Crash Course for Beginners -Build a Netflix Landing Page Clone with HTML, CSS & JS +- [JavaScript Roadmap](/javascript) +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [Exploring JS: JavaScript books for programmers](https://exploringjs.com/) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c?t=2) +- [Build a Netflix Landing Page Clone with HTML, CSS & JS](https://youtu.be/P7t13SGytRk?t=22) diff --git a/src/roadmaps/backend/content/101-basic-frontend/index.md b/src/roadmaps/backend/content/101-basic-frontend/index.md new file mode 100644 index 000000000..9d3ad2fd0 --- /dev/null +++ b/src/roadmaps/backend/content/101-basic-frontend/index.md @@ -0,0 +1,8 @@ +# 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. + +- [W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp) +- [W3Schools: Learn CSS](https://www.w3schools.com/css/) +- [W3Schools: JavaScript Tutorial](https://www.w3schools.com/js/) +- [Articles about Frontend Development](https://thenewstack.io/category/frontend-dev/) diff --git a/src/roadmaps/backend/content/101-basic-frontend/readme.md b/src/roadmaps/backend/content/101-basic-frontend/readme.md deleted file mode 100644 index 621e48830..000000000 --- a/src/roadmaps/backend/content/101-basic-frontend/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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 -W3Schools: Learn HTML -W3Schools: Learn CSS -W3Schools: JavaScript Tutorial -Articles about Frontend Development diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md b/src/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md index e76eecd53..944421c94 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md @@ -2,5 +2,5 @@ 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. -Command line crash course -Basic Terminal Usage - Cheat Sheet to make the command line EASY +- [Command line crash course](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line) +- [Basic Terminal Usage - Cheat Sheet to make the command line EASY](https://www.youtube.com/watch?v=jDINUSK7rXE) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md b/src/roadmaps/backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md index ebb375bfb..04c85f4ba 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md @@ -2,6 +2,6 @@ An operating system is a main program on computer, that governs all other applications. It allows you to use browsers, play games, print documents, launch your favorite program. -Operating System - Overview -Operating System Concepts -Operating System Basics +- [Operating System - Overview](https://www.tutorialspoint.com/operating_system/os_overview.htm) +- [Operating System Concepts](https://codex.cs.yale.edu/avi/os-book/OS10/index.html) +- [Operating System Basics ](https://www.youtube.com/watch?v=9GDX-IyZ_C8) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/102-process-management.md b/src/roadmaps/backend/content/102-os-general-knowledge/102-process-management.md index 40833c1d9..f41ecba34 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/102-process-management.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/102-process-management.md @@ -2,6 +2,5 @@ Process management involves various tasks like creation, scheduling, termination of processes, and a deadlock. Process is a program that is under execution, which is an important part of modern-day operating systems. The OS must allocate resources that enable processes to share and exchange information. It also protects the resources of each process from other methods and allows synchronization among processes. -Free Content -Operating System: Process and Process Management -Process Management in OS: PCB in Operating System +- [Operating System: Process and Process Management](https://medium.com/@akhandmishra/operating-system-process-and-process-management-108d83e8ce60) +- [Process Management in OS: PCB in Operating System](https://www.guru99.com/process-management-pcb.html) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/103-threads-and-concurrency.md b/src/roadmaps/backend/content/102-os-general-knowledge/103-threads-and-concurrency.md index f38f1e5bc..63b1cc95d 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/103-threads-and-concurrency.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/103-threads-and-concurrency.md @@ -4,9 +4,8 @@ A thread is the smallest unit of processing that can be performed in an OS. In m Concurrency refers to the execution of multiple threads at the same time. It occurs in an operating system when multiple process threads are executing concurrently. These threads can interact with one another via shared memory or message passing. Concurrency results in resource sharing, which causes issues like deadlocks and resource scarcity. It aids with techniques such as process coordination, memory allocation, and execution schedule to maximize throughput. -Free Content -What’s the Diff: Programs, Processes and Threads -Concurrency in Operating System -Intro to Processes & Threads -Introduction to Concurrency -Concurrency, Threading and Parallelism Explained \ No newline at end of file +- [What’s the Diff: Programs, Processes and Threads](https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/) +- [Concurrency in Operating System](https://www.javatpoint.com/concurrency-in-operating-system) +- [Intro to Processes & Threads](https://www.youtube.com/watch?v=exbKr6fnoUw) +- [Introduction to Concurrency](https://www.youtube.com/watch?v=iKtvNJQoCNw) +- [Concurrency, Threading and Parallelism Explained](https://www.youtube.com/watch?v=olYdb0DdGtM) \ No newline at end of file diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/104-basic-terminal-commands.md b/src/roadmaps/backend/content/102-os-general-knowledge/104-basic-terminal-commands.md index 240277518..fdc8a234c 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/104-basic-terminal-commands.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/104-basic-terminal-commands.md @@ -8,9 +8,8 @@ To understand these commands, read through the manual pages by using `man` comma After enough exposure and practice to these commands, it will become easier to use these in practice -Free Content -40 Basic Linux Commands -A collection of modern/faster/saner alternatives to common unix commands -Command Line Tutorial -Commandline Challenge -The 50 Most Popular Linux & Terminal Commands (with timestamps) +- [40 Basic Linux Commands](https://www.hostinger.com/tutorials/linux-commands) +- [A collection of modern/faster/saner alternatives to common unix commands](https://github.com/ibraheemdev/modern-unix) +- [Command Line Tutorial](https://www.learnenough.com/command-line-tutorial) +- [Commandline Challenge](https://cmdchallenge.com/) +- [The 50 Most Popular Linux & Terminal Commands (with timestamps)](https://www.youtube.com/watch?v=ZtqBQ68cfJc) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/105-memory-management.md b/src/roadmaps/backend/content/102-os-general-knowledge/105-memory-management.md index 34b38ae91..e4dd68653 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/105-memory-management.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/105-memory-management.md @@ -4,5 +4,5 @@ The term Memory can be defined as a collection of data in a specific format. It To achieve a degree of multiprogramming and proper utilization of memory, memory management is important. There are several memory management methods, reflecting various approaches, and the effectiveness of each algorithm depends on the situation. -Demystifying memory management in modern programming languages -Memory Management in Operating System +- [Demystifying memory management in modern programming languages](https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd) +- [Memory Management in Operating System](https://www.geeksforgeeks.org/memory-management-in-operating-system/) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/106-interprocess-communication.md b/src/roadmaps/backend/content/102-os-general-knowledge/106-interprocess-communication.md index 145f6e3ff..afd06f0b6 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/106-interprocess-communication.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/106-interprocess-communication.md @@ -2,5 +2,5 @@ Interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data -Interprocess Communication -Interprocess Communication - Neso Academy +- [Interprocess Communication](https://www.geeksforgeeks.org/inter-process-communication-ipc/) +- [Interprocess Communication - Neso Academy](https://www.youtube.com/watch?v=dJuYKfR8vec) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/107-io-management.md b/src/roadmaps/backend/content/102-os-general-knowledge/107-io-management.md index 56e71bd62..f2bcd3c80 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/107-io-management.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/107-io-management.md @@ -2,7 +2,6 @@ One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touchpad, disk drives, display adapters, USB devices, Bit-mapped screens, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers, etc. -Free Content -Operating System - I/O Hardware -IO Management -Basics of OS (I/O Structure) +- [Operating System - I/O Hardware](https://www.tutorialspoint.com/operating_system/os_io_hardware.htm) +- [IO Management](https://www.omscs-notes.com/operating-systems/io-management/) +- [Basics of OS (I/O Structure)](https://www.youtube.com/watch?v=F18RiREDkwE) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/108-posix-basics.md b/src/roadmaps/backend/content/102-os-general-knowledge/108-posix-basics.md index 9774536e5..1a78c775a 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/108-posix-basics.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/108-posix-basics.md @@ -8,7 +8,6 @@ So, in this case, when we want to interact with any of these streams (through a POSIX also adds a standard for exit codes, filesystem semantics, and several other command line utility API conventions. -Free Content -POSIX standard by IEEE -Summary of some POSIX implementations -A guide to POSIX +- [POSIX standard by IEEE](https://pubs.opengroup.org/onlinepubs/9699919799/) +- [Summary of some POSIX implementations](https://unix.stackexchange.com/a/220877) +- [A guide to POSIX](https://www.baeldung.com/linux/posix) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/109-basic-networking-concepts.md b/src/roadmaps/backend/content/102-os-general-knowledge/109-basic-networking-concepts.md index fed8bb64f..0c143ba42 100644 --- a/src/roadmaps/backend/content/102-os-general-knowledge/109-basic-networking-concepts.md +++ b/src/roadmaps/backend/content/102-os-general-knowledge/109-basic-networking-concepts.md @@ -2,5 +2,4 @@ Computer networking refers to interconnected computing devices that can exchange data and share resources with each other. These networked devices use a system of rules, called communications protocols, to transmit information over physical or wireless technologies. -Free Content -What is Computer Networking? +- [What is Computer Networking?](https://aws.amazon.com/what-is/computer-networking/) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/index.md b/src/roadmaps/backend/content/102-os-general-knowledge/index.md new file mode 100644 index 000000000..66842cc27 --- /dev/null +++ b/src/roadmaps/backend/content/102-os-general-knowledge/index.md @@ -0,0 +1,8 @@ +# 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. + +- [What is an operating system?](https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/) +- [Operating System summary](https://www.guru99.com/os-tutorial.html) +- [Operating Systems: Crash Course Computer Science #18](https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse) +- [Introduction to Operating System](https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1) diff --git a/src/roadmaps/backend/content/102-os-general-knowledge/readme.md b/src/roadmaps/backend/content/102-os-general-knowledge/readme.md deleted file mode 100644 index 802c6d809..000000000 --- a/src/roadmaps/backend/content/102-os-general-knowledge/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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 -What is an operating system? -Operating System summary -Operating Systems: Crash Course Computer Science #18 -Introduction to Operating System diff --git a/src/roadmaps/backend/content/103-learn-a-language/100-go.md b/src/roadmaps/backend/content/103-learn-a-language/100-go.md index f9dd641d1..604ffbf66 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/100-go.md +++ b/src/roadmaps/backend/content/103-learn-a-language/100-go.md @@ -9,11 +9,11 @@ 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 -A Tour of Go – Go Basics -Go Reference Documentation -Go by Example - annotated example programs -Learn Go | Codecademy -W3Schools Go Tutorial -Making a RESTful JSON API in Go -Go, the Programming Language of the Cloud +- [Go Roadmap](/golang) +- [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) +- [Go Reference Documentation](https://go.dev/doc/) +- [Go by Example - annotated example programs](https://gobyexample.com/) +- [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) +- [W3Schools Go Tutorial ](https://www.w3schools.com/go/) +- [Making a RESTful JSON API in Go](https://thenewstack.io/make-a-restful-json-api-go/) +- [Go, the Programming Language of the Cloud](https://thenewstack.io/go-the-programming-language-of-the-cloud/) diff --git a/src/roadmaps/backend/content/103-learn-a-language/101-rust.md b/src/roadmaps/backend/content/103-learn-a-language/101-rust.md index 0e45b54bc..5c26cbc59 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/101-rust.md +++ b/src/roadmaps/backend/content/103-learn-a-language/101-rust.md @@ -2,8 +2,7 @@ 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 -The Rust Programming Language - online book -Rust by Example - collection of runnable examples -Rust vs. Go: Why They’re Better Together -Rust by the Numbers: The Rust Programming Language in 2021 +- [The Rust Programming Language - online book](https://doc.rust-lang.org/book/) +- [Rust by Example - collection of runnable examples](https://doc.rust-lang.org/stable/rust-by-example/index.html) +- [Rust vs. Go: Why They’re Better Together](https://thenewstack.io/rust-vs-go-why-theyre-better-together/) +- [Rust by the Numbers: The Rust Programming Language in 2021](https://thenewstack.io/rust-by-the-numbers-the-rust-programming-language-in-2021/) diff --git a/src/roadmaps/backend/content/103-learn-a-language/102-java.md b/src/roadmaps/backend/content/103-learn-a-language/102-java.md index d94d0f13a..18675e638 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/102-java.md +++ b/src/roadmaps/backend/content/103-learn-a-language/102-java.md @@ -9,8 +9,8 @@ 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 -Java Website -Codeacademy - Free Course -W3 Schools Tutorials -Java Crash Course +- [Java Roadmap](/java) +- [Java Website](https://www.java.com/) +- [Codeacademy - Free Course](https://www.codecademy.com/learn/learn-java) +- [W3 Schools Tutorials](https://www.w3schools.com/java/) +- [Java Crash Course](https://www.youtube.com/watch?v=eIrMbAQSU34) diff --git a/src/roadmaps/backend/content/103-learn-a-language/103-csharp.md b/src/roadmaps/backend/content/103-learn-a-language/103-csharp.md index 97ad8ea54..efb320045 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/103-csharp.md +++ b/src/roadmaps/backend/content/103-learn-a-language/103-csharp.md @@ -1,8 +1,7 @@ # C# 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 -C# Learning Path -C# on W3 schools -Introduction to C# -C# tutorials +- [C# Learning Path](https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-35129-website) +- [C# on W3 schools](https://www.w3schools.com/cs/index.php) +- [Introduction to C#](https://docs.microsoft.com/en-us/shows/CSharp-101/?WT.mc_id=Educationalcsharp-c9-scottha) +- [C# tutorials](https://www.youtube.com/watch?v=gfkTfcpWqAY&list=PLTjRvDozrdlz3_FPXwb6lX_HoGXa09Yef) diff --git a/src/roadmaps/backend/content/103-learn-a-language/103-php.md b/src/roadmaps/backend/content/103-learn-a-language/103-php.md index 92f32c504..10e61b2e6 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/103-php.md +++ b/src/roadmaps/backend/content/103-learn-a-language/103-php.md @@ -2,10 +2,9 @@ PHP is a general purpose scripting language often used 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 and supported by PHP Foundation. PHP supports procedural and object-oriented styles of programming with some elements of functional programming as well. -Free Content -PHP Website -Learn PHP - W3Schools -PHP - The Right Way -PHP for Beginners -PHP For Absolute Beginners -Full PHP 8 Tutorial - Learn PHP The Right Way In 2022 +- [PHP Website](https://php.org/) +- [Learn PHP - W3Schools](https://www.w3schools.com/php/) +- [PHP - The Right Way](https://phptherightway.com/) +- [PHP for Beginners](https://www.youtube.com/watch?v=U2lQWR6uIuo&list=PL3VM-unCzF8ipG50KDjnzhugceoSG3RTC) +- [PHP For Absolute Beginners](https://www.youtube.com/watch?v=2eebptXfEvw) +- [Full PHP 8 Tutorial - Learn PHP The Right Way In 2022](https://www.youtube.com/watch?v=sVbEyFZKgqk&list=PLr3d3QYzkw2xabQRUpcZ_IBk9W50M9pe-) diff --git a/src/roadmaps/backend/content/103-learn-a-language/105-javascript.md b/src/roadmaps/backend/content/103-learn-a-language/105-javascript.md index 6108ff8a3..9e8dd13b2 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/105-javascript.md +++ b/src/roadmaps/backend/content/103-learn-a-language/105-javascript.md @@ -10,14 +10,12 @@ Apart from being used in the browser, JavaScript is also used in backend e.g. us If you pick up JavaScript for the Backend, my personal recommendation would be to learn [JavaScript](/javascript) and then go with [Node.js](/nodejs) as it is the most popular and widely used option. Also, I would recommend learning TypeScript later on as you continue with your backend development Journey; it's a superset of JavaScript and is used in many projects. -Free Content - -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -Eloquent Javascript - Book -You Don't Know JS Yet (book series) -Codecademy - Learn JavaScript -JavaScript Crash Course for Beginners - -Node.js Crash Course -Node.js Tutorial for Beginners +- [JavaScript Roadmap](/javascript) +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [Eloquent Javascript - Book](https://eloquentjavascript.net/) +- [You Dont Know JS Yet (book series) ](https://github.com/getify/You-Dont-Know-JS) +- [Codecademy - Learn JavaScript](https://www.codecademy.com/learn/introduction-to-javascript) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c) +- [Node.js Crash Course](https://www.youtube.com/watch?v=fBNz5xF-Kx4) +- [Node.js Tutorial for Beginners](https://www.youtube.com/watch?v=TlB_eWDSMt4) diff --git a/src/roadmaps/backend/content/103-learn-a-language/106-python.md b/src/roadmaps/backend/content/103-learn-a-language/106-python.md index 5cd9bffee..7a112ee60 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/106-python.md +++ b/src/roadmaps/backend/content/103-learn-a-language/106-python.md @@ -8,14 +8,14 @@ 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, procedural or object-oriented programmatic ways. -Free Content -Python Website -Python Getting Started -Automate the Boring Stuff -FreeCodeCamp.org - How to Learn Python ? -Python principles - Python basics -W3Schools - Python Tutorial -Python Crash Course -Codecademy - Learn Python 2 -An Introduction to Python for Non-Programmers -Getting Started with Python and InfluxDB +- [Python Roadmap](/python) +- [Python Website](https://www.python.org/) +- [Python Getting Started](https://www.python.org/about/gettingstarted/) +- [Automate the Boring Stuff](https://automatetheboringstuff.com/) +- [FreeCodeCamp.org - How to Learn Python ? ](https://www.freecodecamp.org/news/how-to-learn-python/) +- [Python principles - Python basics](https://pythonprinciples.com/) +- [W3Schools - Python Tutorial ](https://www.w3schools.com/python/) +- [Python Crash Course](https://ehmatthes.github.io/pcc/) +- [Codecademy - Learn Python 2](https://www.codecademy.com/learn/learn-python) +- [An Introduction to Python for Non-Programmers](https://thenewstack.io/an-introduction-to-python-for-non-programmers/) +- [Getting Started with Python and InfluxDB](https://thenewstack.io/getting-started-with-python-and-influxdb/) diff --git a/src/roadmaps/backend/content/103-learn-a-language/107-ruby.md b/src/roadmaps/backend/content/103-learn-a-language/107-ruby.md index 5ccbc04af..318a3bf88 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/107-ruby.md +++ b/src/roadmaps/backend/content/103-learn-a-language/107-ruby.md @@ -2,8 +2,7 @@ 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 Website -Learn Ruby in 20 minutes -Learn Ruby | Codecademy -Ruby, An Introduction to a Programmer’s Best Friend +- [Ruby Website](https://www.ruby-lang.org/en/) +- [Learn Ruby in 20 minutes](https://www.ruby-lang.org/en/documentation/quickstart/) +- [Learn Ruby | Codecademy](https://www.codecademy.com/learn/learn-ruby) +- [Ruby, An Introduction to a Programmer’s Best Friend](https://thenewstack.io/ruby-a-programmers-best-friend/) diff --git a/src/roadmaps/backend/content/103-learn-a-language/108-cpp.md b/src/roadmaps/backend/content/103-learn-a-language/108-cpp.md index 55eca784b..f4740d760 100644 --- a/src/roadmaps/backend/content/103-learn-a-language/108-cpp.md +++ b/src/roadmaps/backend/content/103-learn-a-language/108-cpp.md @@ -2,6 +2,5 @@ C++ is a powerful general-purpose programming language. It can be used to develop operating systems, browsers, games, and so on. C++ supports different ways of programming like procedural, object-oriented, functional, and so on. This makes C++ powerful as well as flexible. -Free Content -Learn Cpp -C++ Reference +- [Learn Cpp](https://learncpp.com/) +- [C++ Reference](https://en.cppreference.com/) diff --git a/src/roadmaps/backend/content/103-learn-a-language/readme.md b/src/roadmaps/backend/content/103-learn-a-language/index.md similarity index 100% rename from src/roadmaps/backend/content/103-learn-a-language/readme.md rename to src/roadmaps/backend/content/103-learn-a-language/index.md diff --git a/src/roadmaps/backend/content/104-version-control-systems/100-basic-usage-of-git.md b/src/roadmaps/backend/content/104-version-control-systems/100-basic-usage-of-git.md index f7f276bfe..67d86312a 100644 --- a/src/roadmaps/backend/content/104-version-control-systems/100-basic-usage-of-git.md +++ b/src/roadmaps/backend/content/104-version-control-systems/100-basic-usage-of-git.md @@ -2,8 +2,7 @@ [Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. -Free Content -Learn Git on the command line -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes +- [Learn Git on the command line](https://github.com/jlord/git-it-electron) +- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) diff --git a/src/roadmaps/backend/content/104-version-control-systems/readme.md b/src/roadmaps/backend/content/104-version-control-systems/index.md similarity index 53% rename from src/roadmaps/backend/content/104-version-control-systems/readme.md rename to src/roadmaps/backend/content/104-version-control-systems/index.md index 9e840295f..5f485f1b0 100644 --- a/src/roadmaps/backend/content/104-version-control-systems/readme.md +++ b/src/roadmaps/backend/content/104-version-control-systems/index.md @@ -3,6 +3,5 @@ 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 -Git -What is Version Control? +- [Git](https://git-scm.com/) +- [What is Version Control?](https://www.atlassian.com/git/tutorials/what-is-version-control) diff --git a/src/roadmaps/backend/content/105-repo-hosting-services/100-github.md b/src/roadmaps/backend/content/105-repo-hosting-services/100-github.md index ae1363c60..f4e56c6ac 100644 --- a/src/roadmaps/backend/content/105-repo-hosting-services/100-github.md +++ b/src/roadmaps/backend/content/105-repo-hosting-services/100-github.md @@ -2,12 +2,10 @@ 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 - -GitHub Website -GitHub Documentation -How to Use Git in a Professional Dev Team -What is GitHub? -Git vs. GitHub: What's the difference? -Git and GitHub for Beginners -Git and GitHub - CS50 Beyond 2019 \ No newline at end of file +- [GitHub Website](https://github.com) +- [GitHub Documentation](https://docs.github.com/en/get-started/quickstart) +- [How to Use Git in a Professional Dev Team](https://ooloo.io/project/github-flow) +- [What is GitHub?](https://www.youtube.com/watch?v=w3jLJU7DT5E) +- [Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU) +- [Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk) +- [Git and GitHub - CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I) \ No newline at end of file diff --git a/src/roadmaps/backend/content/105-repo-hosting-services/101-gitlab.md b/src/roadmaps/backend/content/105-repo-hosting-services/101-gitlab.md index ed8109bd6..702145982 100644 --- a/src/roadmaps/backend/content/105-repo-hosting-services/101-gitlab.md +++ b/src/roadmaps/backend/content/105-repo-hosting-services/101-gitlab.md @@ -2,7 +2,5 @@ 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 - -GitLab Website -GitLab Documentation +- [GitLab Website](https://gitlab.com/) +- [GitLab Documentation](https://docs.gitlab.com/) diff --git a/src/roadmaps/backend/content/105-repo-hosting-services/102-bitbucket.md b/src/roadmaps/backend/content/105-repo-hosting-services/102-bitbucket.md index 36286623d..e463af7dd 100644 --- a/src/roadmaps/backend/content/105-repo-hosting-services/102-bitbucket.md +++ b/src/roadmaps/backend/content/105-repo-hosting-services/102-bitbucket.md @@ -4,10 +4,9 @@ Bitbucket is a Git based hosting and source code repository service that is Atla 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 Website -Getting started with Bitbucket -Using Git with Bitbucket Cloud -A brief overview of Bitbucket -Bitbucket tutorial | How to use Bitbucket Cloud -Bitbucket Tutorial | Bitbucket for Beginners +- [Bitbucket Website](https://bitbucket.org/product) +- [Getting started with Bitbucket](https://bitbucket.org/product/guides/basics/bitbucket-interface) +- [Using Git with Bitbucket Cloud](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) +- [A brief overview of Bitbucket](https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket) +- [Bitbucket tutorial | How to use Bitbucket Cloud](https://www.youtube.com/watch?v=M44nEyd_5To) +- [Bitbucket Tutorial | Bitbucket for Beginners](https://www.youtube.com/watch?v=i5T-DB8tb4A) diff --git a/src/roadmaps/backend/content/105-repo-hosting-services/index.md b/src/roadmaps/backend/content/105-repo-hosting-services/index.md new file mode 100644 index 000000000..3469e1dc7 --- /dev/null +++ b/src/roadmaps/backend/content/105-repo-hosting-services/index.md @@ -0,0 +1,8 @@ +# 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. + +- [GitHub](https://github.com/features/) +- [GitLab](https://about.gitlab.com/) +- [BitBucket](https://bitbucket.org/product/guides/getting-started/overview) +- [How to choose the best source code repository](https://bitbucket.org/product/code-repository) diff --git a/src/roadmaps/backend/content/105-repo-hosting-services/readme.md b/src/roadmaps/backend/content/105-repo-hosting-services/readme.md deleted file mode 100644 index 574869a99..000000000 --- a/src/roadmaps/backend/content/105-repo-hosting-services/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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 -GitHub -GitLab -BitBucket -How to choose the best source code repository diff --git a/src/roadmaps/backend/content/106-relational-databases/100-postgresql.md b/src/roadmaps/backend/content/106-relational-databases/100-postgresql.md index dc74833ca..4f32f9eef 100644 --- a/src/roadmaps/backend/content/106-relational-databases/100-postgresql.md +++ b/src/roadmaps/backend/content/106-relational-databases/100-postgresql.md @@ -8,9 +8,9 @@ PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance. -Free Content -Official Website -What is PostgreSQL -Learn PostgreSQL - Full Tutorial for Beginners -Learn PostgreSQL Tutorial - Full Course for Beginners -Postgres tutorial for Beginners +- [PostgreSQL DBA Roadmap](/postgresql-dba) +- [Official Website](https://www.postgresql.org/) +- [What is PostgreSQL](https://www.geeksforgeeks.org/what-is-postgresql-introduction/) +- [Learn PostgreSQL - Full Tutorial for Beginners](https://www.postgresqltutorial.com/) +- [Learn PostgreSQL Tutorial - Full Course for Beginners](https://www.youtube.com/watch?v=qw--VYLpxG4) +- [Postgres tutorial for Beginners](https://www.youtube.com/watch?v=eMIxuk0nOkU) diff --git a/src/roadmaps/backend/content/106-relational-databases/101-mysql.md b/src/roadmaps/backend/content/106-relational-databases/101-mysql.md index 8b1ceacdf..0309f77a5 100644 --- a/src/roadmaps/backend/content/106-relational-databases/101-mysql.md +++ b/src/roadmaps/backend/content/106-relational-databases/101-mysql.md @@ -2,7 +2,6 @@ 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 website -W3Schools - MySQL tutorial -MySQL tutorial for beginners +- [MySQL website](https://www.mysql.com/) +- [W3Schools - MySQL tutorial ](https://www.w3schools.com/mySQl/default.asp) +- [MySQL tutorial for beginners](https://www.youtube.com/watch?v=7S_tz1z_5bA) diff --git a/src/roadmaps/backend/content/106-relational-databases/102-mariadb.md b/src/roadmaps/backend/content/106-relational-databases/102-mariadb.md index 390b55809..3de61bfa9 100644 --- a/src/roadmaps/backend/content/106-relational-databases/102-mariadb.md +++ b/src/roadmaps/backend/content/106-relational-databases/102-mariadb.md @@ -2,8 +2,7 @@ MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry. MariaDB was created with the intention of being a more versatile, drop-in replacement version of MySQL -Free Content -MariaDB website -MariaDB vs MySQL -W3Schools - MariaDB tutorial -MariaDB Tutorial For Beginners in One Hour +- [MariaDB website](https://mariadb.org/) +- [MariaDB vs MySQL](https://www.guru99.com/mariadb-vs-mysql.html) +- [W3Schools - MariaDB tutorial ](https://www.w3schools.blog/mariadb-tutorial) +- [MariaDB Tutorial For Beginners in One Hour](https://www.youtube.com/watch?v=_AMj02sANpI) diff --git a/src/roadmaps/backend/content/106-relational-databases/103-mssql.md b/src/roadmaps/backend/content/106-relational-databases/103-mssql.md index b64597221..e9d707b25 100644 --- a/src/roadmaps/backend/content/106-relational-databases/103-mssql.md +++ b/src/roadmaps/backend/content/106-relational-databases/103-mssql.md @@ -2,7 +2,6 @@ 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 website -Tutorials for SQL Server -SQL Server tutorial for beginners +- [MS SQL website](https://www.microsoft.com/en-ca/sql-server/) +- [Tutorials for SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/tutorials-for-sql-server-2016?view=sql-server-ver15) +- [SQL Server tutorial for beginners](https://www.youtube.com/watch?v=-EPMOaV7h_Q) diff --git a/src/roadmaps/backend/content/106-relational-databases/104-oracle.md b/src/roadmaps/backend/content/106-relational-databases/104-oracle.md index 7c227f5b0..b96a54df8 100644 --- a/src/roadmaps/backend/content/106-relational-databases/104-oracle.md +++ b/src/roadmaps/backend/content/106-relational-databases/104-oracle.md @@ -2,7 +2,6 @@ Oracle Database Server or sometimes called Oracle RDBMS or even simply Oracle is a world leading relational database management system produced by Oracle Corporation. -Free Content -Official Website -Official Docs -Oracle SQL Tutorial for Beginners +- [Official Website](https://www.oracle.com/database/) +- [Official Docs](https://docs.oracle.com/en/database/index.html) +- [Oracle SQL Tutorial for Beginners](https://www.youtube.com/watch?v=ObbNGhcxXJA) diff --git a/src/roadmaps/backend/content/106-relational-databases/index.md b/src/roadmaps/backend/content/106-relational-databases/index.md new file mode 100644 index 000000000..7fa06b992 --- /dev/null +++ b/src/roadmaps/backend/content/106-relational-databases/index.md @@ -0,0 +1,9 @@ +# 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. + +- [Relational Databases](https://www.ibm.com/cloud/learn/relational-databases) +- [51 Years of Relational Databases](https://learnsql.com/blog/codd-article-databases/) +- [Databases and SQL](https://www.edx.org/course/databases-5-sql) +- [Intro To Relational Databases](https://www.udacity.com/course/intro-to-relational-databases--ud197) +- [What is Relational Database](https://youtu.be/OqjJjpjDRLc) diff --git a/src/roadmaps/backend/content/106-relational-databases/readme.md b/src/roadmaps/backend/content/106-relational-databases/readme.md deleted file mode 100644 index 30c53bfae..000000000 --- a/src/roadmaps/backend/content/106-relational-databases/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# 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 -Relational Databases -51 Years of Relational Databases -Databases and SQL -Intro To Relational Databases -What is Relational Database diff --git a/src/roadmaps/backend/content/107-nosql-databases/100-document-databases.md b/src/roadmaps/backend/content/107-nosql-databases/100-document-databases.md index 5b0158393..f11a11c86 100644 --- a/src/roadmaps/backend/content/107-nosql-databases/100-document-databases.md +++ b/src/roadmaps/backend/content/107-nosql-databases/100-document-databases.md @@ -4,18 +4,9 @@ MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL). -Free Content - -MongoDB Website -MongoDB Documentation -MongoDB Online Sandbox -Learning Path for MongoDB Developers - -## DynamoDB - -DynamoDB is a fully managed proprietary NoSQL database service that supports key–value and document data structures and is offered by Amazon.com as part of the Amazon Web Services portfolio. DynamoDB exposes a similar data model to and derives its name from Dynamo, but has a different underlying implementation. - -Free Content - -Dynamo DB Docs -Official Developers Guide +- [MongoDB Website](https://www.mongodb.com/) +- [MongoDB Documentation](https://docs.mongodb.com/) +- [MongoDB Online Sandbox](https://mongoplayground.net/) +- [Learning Path for MongoDB Developers](https://learn.mongodb.com/catalog) +- [Dynamo DB Docs](https://docs.aws.amazon.com/dynamodb/index.html) +- [Official Developers Guide](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) diff --git a/src/roadmaps/backend/content/107-nosql-databases/101-column-databases.md b/src/roadmaps/backend/content/107-nosql-databases/101-column-databases.md index 1e1933e6a..ffc883dc6 100644 --- a/src/roadmaps/backend/content/107-nosql-databases/101-column-databases.md +++ b/src/roadmaps/backend/content/107-nosql-databases/101-column-databases.md @@ -4,6 +4,5 @@ A **wide-column database** (sometimes referred to as a column database) i **Warning:** note that a "columnar database" and a "column database" are two different terms! -Free Content -Apache Cassandra -Apache Cassandra Database - Full Course for Beginners +- [Apache Cassandra](https://cassandra.apache.org/_/index.html) +- [Apache Cassandra Database - Full Course for Beginners](https://www.youtube.com/watch?v=J-cSy5MeMOA) diff --git a/src/roadmaps/backend/content/107-nosql-databases/102-timeseries-databases.md b/src/roadmaps/backend/content/107-nosql-databases/102-timeseries-databases.md index 9c629cc1b..f6a264622 100644 --- a/src/roadmaps/backend/content/107-nosql-databases/102-timeseries-databases.md +++ b/src/roadmaps/backend/content/107-nosql-databases/102-timeseries-databases.md @@ -4,7 +4,5 @@ InfluxDB was built from the ground up to be a purpose-built time series database; i.e., it was not repurposed to be time series. Time was built-in from the beginning. InfluxDB is part of a comprehensive platform that supports the collection, storage, monitoring, visualization and alerting of time series data. It’s much more than just a time series database. -Free Content - -InfluxDB Website -Time series database +- [InfluxDB Website](https://www.influxdata.com/) +- [Time series database](https://www.influxdata.com/time-series-database/) diff --git a/src/roadmaps/backend/content/107-nosql-databases/104-key-value-databases.md b/src/roadmaps/backend/content/107-nosql-databases/104-key-value-databases.md index 939995aa6..14404961e 100644 --- a/src/roadmaps/backend/content/107-nosql-databases/104-key-value-databases.md +++ b/src/roadmaps/backend/content/107-nosql-databases/104-key-value-databases.md @@ -6,5 +6,4 @@ KV databases are designed for fast and efficient storage and retrieval of data, Some popular KV databases include Redis, Memcached, and LevelDB. These databases are often used in combination with other types of databases, such as relational databases or document databases, to provide a complete and scalable data storage solution. -Free Content -Key-Value Databases - Wikipedia +- [Key-Value Databases - Wikipedia](https://en.wikipedia.org/wiki/Key-value_database) diff --git a/src/roadmaps/backend/content/107-nosql-databases/readme.md b/src/roadmaps/backend/content/107-nosql-databases/index.md similarity index 60% rename from src/roadmaps/backend/content/107-nosql-databases/readme.md rename to src/roadmaps/backend/content/107-nosql-databases/index.md index 02ad6fd9b..afc89b539 100644 --- a/src/roadmaps/backend/content/107-nosql-databases/readme.md +++ b/src/roadmaps/backend/content/107-nosql-databases/index.md @@ -3,7 +3,6 @@ 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 (**B**asically **A**vailable, **S**oft state, **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. -Free Content -NoSQL Explained -How do NoSQL Databases work -SQL vs NoSQL Explained +- [NoSQL Explained](https://www.mongodb.com/nosql-explained) +- [How do NoSQL Databases work](https://www.youtube.com/watch?v=0buKQHokLK8) +- [SQL vs NoSQL Explained](https://www.youtube.com/watch?v=ruz-vK8IesE) diff --git a/src/roadmaps/backend/content/108-more-about-databases/100-orms.md b/src/roadmaps/backend/content/108-more-about-databases/100-orms.md index 52eba2cfa..8381dbd27 100644 --- a/src/roadmaps/backend/content/108-more-about-databases/100-orms.md +++ b/src/roadmaps/backend/content/108-more-about-databases/100-orms.md @@ -2,6 +2,5 @@ Object-Relational Mapping (ORM) is a technique that lets you query and manipulate data from a database using an object-oriented paradigm. When talking about ORM, most people are referring to a library that implements the Object-Relational Mapping technique, hence the phrase "an ORM". -Free Content -Object Relational Mapping - Wikipedia -What is an ORM and how should I use it? +- [Object Relational Mapping - Wikipedia](https://en.wikipedia.org/wiki/Object–relational_mapping) +- [What is an ORM and how should I use it?](https://stackoverflow.com/questions/1279613/what-is-an-orm-how-does-it-work-and-how-should-i-use-one) diff --git a/src/roadmaps/backend/content/108-more-about-databases/101-acid.md b/src/roadmaps/backend/content/108-more-about-databases/101-acid.md index d44cba400..46f6ab9c6 100644 --- a/src/roadmaps/backend/content/108-more-about-databases/101-acid.md +++ b/src/roadmaps/backend/content/108-more-about-databases/101-acid.md @@ -2,7 +2,6 @@ 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 -What is ACID Compliant Database? -What is ACID Compliance?: Atomicity, Consistency, Isolation -ACID Explained: Atomic, Consistent, Isolated & Durable +- [What is ACID Compliant Database?](https://retool.com/blog/whats-an-acid-compliant-database/) +- [What is ACID Compliance?: Atomicity, Consistency, Isolation](https://fauna.com/blog/what-is-acid-compliance-atomicity-consistency-isolation) +- [ACID Explained: Atomic, Consistent, Isolated & Durable](https://www.youtube.com/watch?v=yaQ5YMWkxq4) diff --git a/src/roadmaps/backend/content/108-more-about-databases/102-transactions.md b/src/roadmaps/backend/content/108-more-about-databases/102-transactions.md index 797c69472..d101bc1c5 100644 --- a/src/roadmaps/backend/content/108-more-about-databases/102-transactions.md +++ b/src/roadmaps/backend/content/108-more-about-databases/102-transactions.md @@ -2,5 +2,4 @@ In short, a database transaction is a sequence of multiple operations performed on a database, and all served as a single logical unit of work — taking place wholly or not at all. In other words, there's never a case where only half of the operations are performed and the results saved. -Free Content -What are Transactions? +- [What are Transactions?](https://fauna.com/blog/database-transaction) diff --git a/src/roadmaps/backend/content/108-more-about-databases/103-n-plus-one-problem.md b/src/roadmaps/backend/content/108-more-about-databases/103-n-plus-one-problem.md index 3b02ec58a..098c4020c 100644 --- a/src/roadmaps/backend/content/108-more-about-databases/103-n-plus-one-problem.md +++ b/src/roadmaps/backend/content/108-more-about-databases/103-n-plus-one-problem.md @@ -2,5 +2,4 @@ The N+1 query problem happens when your code executes N additional query statements to fetch the same data that could have been retrieved when executing the primary query. -Free Content -In Detail Explanation of N+1 Problem +- [In Detail Explanation of N+1 Problem](https://medium.com/doctolib/understanding-and-fixing-n-1-query-30623109fe89) diff --git a/src/roadmaps/backend/content/108-more-about-databases/104-database-normalization.md b/src/roadmaps/backend/content/108-more-about-databases/104-database-normalization.md index cd68ad5a9..38017acf8 100644 --- a/src/roadmaps/backend/content/108-more-about-databases/104-database-normalization.md +++ b/src/roadmaps/backend/content/108-more-about-databases/104-database-normalization.md @@ -4,8 +4,6 @@ Database normalization is the process of structuring a relational database in ac Normalization entails organizing the columns (attributes) and tables (relations) of a database to ensure that their dependencies are properly enforced by database integrity constraints. It is accomplished by applying some formal rules either by a process of synthesis (creating a new database design) or decomposition (improving an existing database design). -Free Content - -What is Normalization in DBMS (SQL)? 1NF, 2NF, 3NF, BCNF Database with Example -Database normalization -Basic Concept of Database Normalization \ No newline at end of file +- [What is Normalization in DBMS (SQL)? 1NF, 2NF, 3NF, BCNF Database with Example](https://www.guru99.com/database-normalization.html) +- [Database normalization](https://en.wikipedia.org/wiki/Database_normalization) +- [Basic Concept of Database Normalization](https://www.youtube.com/watch?v=xoTyrdT9SZI) \ No newline at end of file diff --git a/src/roadmaps/backend/content/108-more-about-databases/index.md b/src/roadmaps/backend/content/108-more-about-databases/index.md new file mode 100644 index 000000000..b34512470 --- /dev/null +++ b/src/roadmaps/backend/content/108-more-about-databases/index.md @@ -0,0 +1,6 @@ +# Databases + +A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. + +- [Oracle: What is a Database?](https://www.oracle.com/database/what-is-database/) +- [Prisma.io: What are Databases?](https://www.prisma.io/dataguide/intro/what-are-databases) diff --git a/src/roadmaps/backend/content/108-more-about-databases/readme.md b/src/roadmaps/backend/content/108-more-about-databases/readme.md deleted file mode 100644 index cd001c442..000000000 --- a/src/roadmaps/backend/content/108-more-about-databases/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Databases - -A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. - -Free Content -Oracle: What is a Database? -Prisma.io: What are Databases? diff --git a/src/roadmaps/backend/content/109-apis/100-rest.md b/src/roadmaps/backend/content/109-apis/100-rest.md index 7b38b8115..bc0ac8514 100644 --- a/src/roadmaps/backend/content/109-apis/100-rest.md +++ b/src/roadmaps/backend/content/109-apis/100-rest.md @@ -2,9 +2,7 @@ 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 - -What is REST? -What is a REST API? -Roy Fielding's dissertation chapter, "Representational State Transfer (REST)" -Learn REST: A RESTful Tutorial \ No newline at end of file +- [What is REST?](https://www.codecademy.com/article/what-is-rest) +- [What is a REST API?](https://www.redhat.com/en/topics/api/what-is-a-rest-api) +- [Roy Fieldings dissertation chapter, Representational State Transfer (REST)](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) +- [Learn REST: A RESTful Tutorial](https://restapitutorial.com/) \ No newline at end of file diff --git a/src/roadmaps/backend/content/109-apis/101-json-apis.md b/src/roadmaps/backend/content/109-apis/101-json-apis.md index cbff87737..2c154804c 100644 --- a/src/roadmaps/backend/content/109-apis/101-json-apis.md +++ b/src/roadmaps/backend/content/109-apis/101-json-apis.md @@ -2,8 +2,6 @@ JSON or JavaScript Object Notation is an encoding scheme that is designed to eliminate the need for an ad-hoc code for each application to communicate with servers that communicate in a defined way. JSON API module exposes an implementation for data stores and data structures, such as entity types, bundles, and fields. -Free Content - -Official Website -Official Docs -JSON API: Explained in 4 minutes +- [Official Website](https://jsonapi.org/) +- [Official Docs](https://jsonapi.org/implementations/) +- [JSON API: Explained in 4 minutes ](https://www.youtube.com/watch?v=N-4prIh7t38) diff --git a/src/roadmaps/backend/content/109-apis/102-soap.md b/src/roadmaps/backend/content/109-apis/102-soap.md index 6833bfdd1..808047644 100644 --- a/src/roadmaps/backend/content/109-apis/102-soap.md +++ b/src/roadmaps/backend/content/109-apis/102-soap.md @@ -2,5 +2,4 @@ Simple Object Access Protocol (SOAP) is a message protocol for exchanging information between systems and applications. When it comes to application programming interfaces (APIs), a SOAP API is developed in a more structured and formalized way. SOAP messages can be carried over a variety of lower-level protocols, including the web-related Hypertext Transfer Protocol (HTTP). -Free Content -w3school SOAP explanation +- [w3school SOAP explanation](https://www.w3schools.com/xml/xml_soap.asp) diff --git a/src/roadmaps/backend/content/109-apis/103-grpc.md b/src/roadmaps/backend/content/109-apis/103-grpc.md index 7ddff5be5..60c27c626 100644 --- a/src/roadmaps/backend/content/109-apis/103-grpc.md +++ b/src/roadmaps/backend/content/109-apis/103-grpc.md @@ -4,6 +4,5 @@ gRPC is a high-performance, open source universal RPC framework RPC stands for Remote Procedure Call, there's an ongoing debate on what the g stands for. RPC is a protocol that allows a program to execute a procedure of another program located on another computer. The great advantage is that the developer doesn’t need to code the details of the remote interaction. The remote procedure is called like any other function. But the client and the server can be coded in different languages. -Free Content -gRPC Website -gRPC Docs +- [gRPC Website](https://grpc.io/) +- [gRPC Docs](https://grpc.io/docs/) diff --git a/src/roadmaps/backend/content/109-apis/104-hateoas.md b/src/roadmaps/backend/content/109-apis/104-hateoas.md index 56a8d4939..078f54f03 100644 --- a/src/roadmaps/backend/content/109-apis/104-hateoas.md +++ b/src/roadmaps/backend/content/109-apis/104-hateoas.md @@ -2,5 +2,4 @@ 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 -Oktane17: Designing Beautiful REST + JSON APIs (3:56 - 5:57) +- [Oktane17: Designing Beautiful REST + JSON APIs (3:56 - 5:57)](https://youtu.be/MiOSzpfP1Ww?t=236) diff --git a/src/roadmaps/backend/content/109-apis/105-open-api-spec.md b/src/roadmaps/backend/content/109-apis/105-open-api-spec.md index 7c7e69144..f047ec19b 100644 --- a/src/roadmaps/backend/content/109-apis/105-open-api-spec.md +++ b/src/roadmaps/backend/content/109-apis/105-open-api-spec.md @@ -4,8 +4,7 @@ The OpenAPI Specification (OAS) defines a standard, language-agnostic interface An OpenAPI definition can then be used by documentation generation tools to display the API, code generation tools to generate servers and clients in various programming languages, testing tools, and many other use cases. -Free Content -OpenAPI Specification Website -Open API Live Editor -Official training guide -OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0 +- [OpenAPI Specification Website](https://swagger.io/specification/) +- [Open API Live Editor](https://swagger.io/tools/swagger-editor/) +- [Official training guide](https://swagger.io/docs/specification/about/) +- [OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0](https://www.youtube.com/watch?v=6kwmW_p_Tig) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/100-cookie-based.md b/src/roadmaps/backend/content/109-apis/106-authentication/100-cookie-based.md index d4de9fa1f..9d137c5e7 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/100-cookie-based.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/100-cookie-based.md @@ -2,6 +2,5 @@ Cookies are pieces of data used to identify the user and their preferences. The browser returns the cookie to the server every time the page is requested. Specific cookies like HTTP cookies are used to perform cookie-based authentication to maintain the session for each user. -Free Content -How does cookie based authentication work? +- [How does cookie based authentication work?](https://stackoverflow.com/questions/17769011/how-does-cookie-based-authentication-work) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/101-oauth.md b/src/roadmaps/backend/content/109-apis/106-authentication/101-oauth.md index be4eae79e..d31e44d03 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/101-oauth.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/101-oauth.md @@ -6,8 +6,7 @@ In its most simplest form, OAuth delegates authentication to services like Faceb It is mostly utilized for REST/APIs and only provides a limited scope of a user's data. -Free Content -Okta - What the Heck is OAuth -DigitalOcean - An Introduction to OAuth 2 -What is OAuth really all about -OAuth 2.0: An Overview +- [Okta - What the Heck is OAuth](https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth) +- [DigitalOcean - An Introduction to OAuth 2](https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2) +- [What is OAuth really all about](https://www.youtube.com/watch?v=t4-416mg6iU) +- [OAuth 2.0: An Overview](https://www.youtube.com/watch?v=CPbvxxslDTU) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/102-basic-authentication.md b/src/roadmaps/backend/content/109-apis/106-authentication/102-basic-authentication.md index 652af9ef1..91fc43cee 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/102-basic-authentication.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/102-basic-authentication.md @@ -4,5 +4,5 @@ Given the name "Basic Authentication", you should not confuse Basic Authenticati Because it is a part of the HTTP specifications, all the browsers have native support for "HTTP Basic Authentication". -HTTP Basic Authentication -Illustrated HTTP Basic Authentication +- [HTTP Basic Authentication](https://roadmap.sh/guides/http-basic-authentication) +- [Illustrated HTTP Basic Authentication](https://www.youtube.com/watch?v=mwccHwUn7Gc) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/103-token-authentication.md b/src/roadmaps/backend/content/109-apis/106-authentication/103-token-authentication.md index d9d72b3fb..ded0cf144 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/103-token-authentication.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/103-token-authentication.md @@ -9,5 +9,4 @@ Token-based authentication is different from traditional password-based or serve But using tokens requires a bit of coding know-how. Most developers pick up the techniques quickly, but there is a learning curve. -Free Content -What Is Token-Based Authentication? +- [What Is Token-Based Authentication?](https://www.okta.com/identity-101/what-is-token-based-authentication/) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/104-jwt.md b/src/roadmaps/backend/content/109-apis/106-authentication/104-jwt.md index 03c6bdb29..3752e6808 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/104-jwt.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/104-jwt.md @@ -2,9 +2,8 @@ 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.io Website -Introduction to JSON Web Tokens -What is JWT? -What Is JWT and Why Should You Use JWT -What is JWT? JSON Web Token Explained +- [jwt.io Website](https://jwt.io/) +- [Introduction to JSON Web Tokens](https://jwt.io/introduction) +- [What is JWT?](https://www.akana.com/blog/what-is-jwt) +- [What Is JWT and Why Should You Use JWT](https://www.youtube.com/watch?v=7Q17ubqLfaM) +- [What is JWT? JSON Web Token Explained](https://www.youtube.com/watch?v=926mknSW9Lo) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/105-openid.md b/src/roadmaps/backend/content/109-apis/106-authentication/105-openid.md index 93e33ea10..f37625b87 100644 --- a/src/roadmaps/backend/content/109-apis/106-authentication/105-openid.md +++ b/src/roadmaps/backend/content/109-apis/106-authentication/105-openid.md @@ -3,8 +3,7 @@ OpenID is a protocol that utilizes the authorization and authentication mechanisms of OAuth 2.0 and is now widely adopted by many identity providers on the Internet. It solves the problem of needing to share user's personal info between many different web services(e.g. online shops, discussion forums etc.) -Free Content -Official Website -What is OpenID -OAuth vs OpenID -An Illustrated Guide to OAuth and OpenID Connect \ No newline at end of file +- [Official Website](https://openid.net/) +- [What is OpenID](https://openid.net/connect/) +- [OAuth vs OpenID](https://securew2.com/blog/oauth-vs-openid-which-is-better) +- [An Illustrated Guide to OAuth and OpenID Connect](https://www.youtube.com/watch?v=t18YB3xDfXI) \ No newline at end of file diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/index.md b/src/roadmaps/backend/content/109-apis/106-authentication/index.md new file mode 100644 index 000000000..7622205a2 --- /dev/null +++ b/src/roadmaps/backend/content/109-apis/106-authentication/index.md @@ -0,0 +1,21 @@ +# Authentication + +The API authentication process validates the identity of the client attempting to make a connection by using an authentication protocol. The protocol sends the credentials from the remote client requesting the connection to the remote access server in either plain text or encrypted form. The server then knows whether it can grant access to that remote client or not. + +Here is the list of common ways of authentication: + +- JWT Authentication +- Token based Authentication +- Session based Authentication +- Basic Authentication +- OAuth - Open Authorization +- SSO - Single Sign On + +- [User Authentication: Understanding the Basics & Top Tips](https://swoopnow.com/user-authentication/) +- [An overview about authentication methods](https://betterprogramming.pub/how-do-you-authenticate-mate-f2b70904cc3a) +- [SSO - Single Sign On](https://roadmap.sh/guides/sso) +- [OAuth - Open Authorization](https://roadmap.sh/guides/oauth) +- [JWT Authentication](https://roadmap.sh/guides/jwt-authentication) +- [Token Based Authentication](https://roadmap.sh/guides/token-authentication) +- [Session Based Authentication](https://roadmap.sh/guides/session-authentication) +- [Basic Authentication](https://roadmap.sh/guides/basic-authentication) diff --git a/src/roadmaps/backend/content/109-apis/106-authentication/readme.md b/src/roadmaps/backend/content/109-apis/106-authentication/readme.md deleted file mode 100644 index f39beeb1c..000000000 --- a/src/roadmaps/backend/content/109-apis/106-authentication/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Authentication - -The API authentication process validates the identity of the client attempting to make a connection by using an authentication protocol. The protocol sends the credentials from the remote client requesting the connection to the remote access server in either plain text or encrypted form. The server then knows whether it can grant access to that remote client or not. - -Here is the list of common ways of authentication: - -- JWT Authentication -- Token based Authentication -- Session based Authentication -- Basic Authentication -- OAuth - Open Authorization -- SSO - Single Sign On - -Free Content -User Authentication: Understanding the Basics & Top Tips -An overview about authentication methods -SSO - Single Sign On -OAuth - Open Authorization -JWT Authentication -Token Based Authentication -Session Based Authentication -Basic Authentication diff --git a/src/roadmaps/backend/content/109-apis/106-graphql.md b/src/roadmaps/backend/content/109-apis/106-graphql.md index b3630a5bd..c10d4fb61 100644 --- a/src/roadmaps/backend/content/109-apis/106-graphql.md +++ b/src/roadmaps/backend/content/109-apis/106-graphql.md @@ -8,5 +8,4 @@ GraphQL also provides a way to define the structure of the data that is returned GraphQL is widely used in modern web and mobile applications, and it is supported by a large and active developer community. -Free Content -GraphQL Official Website +- [GraphQL Official Website](https://graphql.org/) diff --git a/src/roadmaps/backend/content/109-apis/index.md b/src/roadmaps/backend/content/109-apis/index.md new file mode 100644 index 000000000..c87aaf55a --- /dev/null +++ b/src/roadmaps/backend/content/109-apis/index.md @@ -0,0 +1,6 @@ +# APIs + +API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other. + +- [What is an API?](https://aws.amazon.com/what-is/api/) +- [What is an API?](https://www.youtube.com/watch?v=s7wmiS2mSXY) diff --git a/src/roadmaps/backend/content/109-apis/readme.md b/src/roadmaps/backend/content/109-apis/readme.md deleted file mode 100644 index 85b707b85..000000000 --- a/src/roadmaps/backend/content/109-apis/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# APIs - -API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other. - -Free Content -What is an API? -What is an API? diff --git a/src/roadmaps/backend/content/109-scaling-databases/100-database-indexes.md b/src/roadmaps/backend/content/109-scaling-databases/100-database-indexes.md index 8f4dc6c30..075c519a5 100644 --- a/src/roadmaps/backend/content/109-scaling-databases/100-database-indexes.md +++ b/src/roadmaps/backend/content/109-scaling-databases/100-database-indexes.md @@ -2,6 +2,5 @@ An index is a data structure that you build and assign on top of an existing table that basically looks through your table and tries to analyze and summarize so that it can create shortcuts. -Free Content -An in-depth look at Database Indexing -Database Indexing Explained +- [An in-depth look at Database Indexing](https://www.freecodecamp.org/news/database-indexing-at-a-glance-bb50809d48bd/) +- [Database Indexing Explained](https://www.youtube.com/watch?v=-qNSXK7s7_w) diff --git a/src/roadmaps/backend/content/109-scaling-databases/101-data-replication.md b/src/roadmaps/backend/content/109-scaling-databases/101-data-replication.md index 255ef50e9..6ffe2e1ee 100644 --- a/src/roadmaps/backend/content/109-scaling-databases/101-data-replication.md +++ b/src/roadmaps/backend/content/109-scaling-databases/101-data-replication.md @@ -2,6 +2,4 @@ Data replication is the process by which data residing on a physical/virtual server(s) or cloud instance (primary instance) is continuously replicated or copied to a secondary server(s) or cloud instance (standby instance). Organizations replicate data to support high availability, backup, and/or disaster recovery. -Free Content - -What is Data Replication? +- [What is Data Replication?](https://youtu.be/fUrKt-AQYtE) diff --git a/src/roadmaps/backend/content/109-scaling-databases/102-sharding-strategies.md b/src/roadmaps/backend/content/109-scaling-databases/102-sharding-strategies.md index fd03a5dc3..471c0f057 100644 --- a/src/roadmaps/backend/content/109-scaling-databases/102-sharding-strategies.md +++ b/src/roadmaps/backend/content/109-scaling-databases/102-sharding-strategies.md @@ -2,8 +2,6 @@ Sharding strategy is a technique to split a large dataset into smaller chunks (logical shard) in which we distribute these chunks in different machines/database nodes in order to distribute the traffic load. It’s a good mechanism to improve the scalability of an application. Many databases support sharding, but not all. -Free Content - -Database Sharding – System Design Interview Concept -Wikipedia - Sharding in Datbase Architectures -How sharding a database can make it faster +- [Database Sharding – System Design Interview Concept](https://www.geeksforgeeks.org/database-sharding-a-system-design-concept/) +- [Wikipedia - Sharding in Datbase Architectures](https://en.wikipedia.org/wiki/Shard_(database_architecture)) +- [How sharding a database can make it faster](https://stackoverflow.blog/2022/03/14/how-sharding-a-database-can-make-it-faster/) diff --git a/src/roadmaps/backend/content/109-scaling-databases/103-cap-theorem.md b/src/roadmaps/backend/content/109-scaling-databases/103-cap-theorem.md index 7f7a22712..ad14ed6e0 100644 --- a/src/roadmaps/backend/content/109-scaling-databases/103-cap-theorem.md +++ b/src/roadmaps/backend/content/109-scaling-databases/103-cap-theorem.md @@ -2,9 +2,8 @@ CAP is an acronym that stands for Consistency, Availability and Partition Tolerance. According to CAP theorem, any distributed system can only guarantee two of the three properties at any point of time. You can't guarantee all three properties at once. -Free Content -What is CAP Theorem? -CAP Theorem - Wikipedia -An Illustrated Proof of the CAP Theorem -CAP Theorem and it's applications in NoSQL Databases -What is CAP Theorem? +- [What is CAP Theorem?](https://www.bmc.com/blogs/cap-theorem/) +- [CAP Theorem - Wikipedia](https://en.wikipedia.org/wiki/CAP_theorem) +- [An Illustrated Proof of the CAP Theorem](https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/) +- [CAP Theorem and its applications in NoSQL Databases](https://www.ibm.com/uk-en/cloud/learn/cap-theorem) +- [What is CAP Theorem?](https://www.youtube.com/watch?v=_RbsFXWRZ10) diff --git a/src/roadmaps/backend/content/109-scaling-databases/index.md b/src/roadmaps/backend/content/109-scaling-databases/index.md new file mode 100644 index 000000000..b34512470 --- /dev/null +++ b/src/roadmaps/backend/content/109-scaling-databases/index.md @@ -0,0 +1,6 @@ +# Databases + +A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. + +- [Oracle: What is a Database?](https://www.oracle.com/database/what-is-database/) +- [Prisma.io: What are Databases?](https://www.prisma.io/dataguide/intro/what-are-databases) diff --git a/src/roadmaps/backend/content/109-scaling-databases/readme.md b/src/roadmaps/backend/content/109-scaling-databases/readme.md deleted file mode 100644 index cd001c442..000000000 --- a/src/roadmaps/backend/content/109-scaling-databases/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Databases - -A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. - -Free Content -Oracle: What is a Database? -Prisma.io: What are Databases? diff --git a/src/roadmaps/backend/content/110-caching/100-cdn.md b/src/roadmaps/backend/content/110-caching/100-cdn.md index 6cfa909bc..78a8cbea7 100644 --- a/src/roadmaps/backend/content/110-caching/100-cdn.md +++ b/src/roadmaps/backend/content/110-caching/100-cdn.md @@ -5,8 +5,7 @@ Traditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) p 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 -CloudFlare - What is a CDN? | How do CDNs work? -Wikipedia - Content Delivery Network -What is Cloud CDN? -What is a Content Delivery Network (CDN)? +- [CloudFlare - What is a CDN? | How do CDNs work?](https://www.cloudflare.com/en-ca/learning/cdn/what-is-a-cdn/) +- [Wikipedia - Content Delivery Network](https://en.wikipedia.org/wiki/Content_delivery_network) +- [What is Cloud CDN?](https://www.youtube.com/watch?v=841kyd_mfH0) +- [What is a Content Delivery Network (CDN)?](https://www.youtube.com/watch?v=Bsq5cKkS33I) diff --git a/src/roadmaps/backend/content/110-caching/101-server-side/100-redis.md b/src/roadmaps/backend/content/110-caching/101-server-side/100-redis.md index e7ea87dc2..ca8f3e6bd 100644 --- a/src/roadmaps/backend/content/110-caching/101-server-side/100-redis.md +++ b/src/roadmaps/backend/content/110-caching/101-server-side/100-redis.md @@ -2,7 +2,5 @@ Redis is an open source (BSD licensed), in-memory **data structure store** used as a database, cache, message broker, and streaming engine. Redis provides data structures such as [strings](https://redis.io/topics/data-types-intro#strings), [hashes](https://redis.io/topics/data-types-intro#hashes), [lists](https://redis.io/topics/data-types-intro#lists), [sets](https://redis.io/topics/data-types-intro#sets), [sorted sets](https://redis.io/topics/data-types-intro#sorted-sets) with range queries, [bitmaps](https://redis.io/topics/data-types-intro#bitmaps), [hyperloglogs](https://redis.io/topics/data-types-intro#hyperloglogs), [geospatial indexes](https://redis.io/commands/geoadd), and [streams](https://redis.io/topics/streams-intro). Redis has built-in [replication](https://redis.io/topics/replication), [Lua scripting](https://redis.io/commands/eval), [LRU eviction](https://redis.io/topics/lru-cache), [transactions](https://redis.io/topics/transactions), and different levels of [on-disk persistence](https://redis.io/topics/persistence), and provides high availability via [Redis Sentinel](https://redis.io/topics/sentinel) and automatic partitioning with [Redis Cluster](https://redis.io/topics/cluster-tutorial). -Free Content - -Redis Website -Redis in 100 Seconds +- [Redis Website](https://redis.io/) +- [Redis in 100 Seconds](https://www.youtube.com/watch?v=G1rOthIU-uo) diff --git a/src/roadmaps/backend/content/110-caching/101-server-side/101-memcached.md b/src/roadmaps/backend/content/110-caching/101-server-side/101-memcached.md index ed166e1a9..371b66dcb 100644 --- a/src/roadmaps/backend/content/110-caching/101-server-side/101-memcached.md +++ b/src/roadmaps/backend/content/110-caching/101-server-side/101-memcached.md @@ -6,10 +6,6 @@ Memcached's APIs provide a very large hash table distributed across multiple mac Memcached has no internal mechanism to track misses which may happen. However, some third-party utilities provide this functionality. -Free Content - -Memcached, From Wikipedia - -Memcached, From Official Github - -Memcached Tutorial +- [Memcached, From Wikipedia](https://en.wikipedia.org/wiki/Memcached) +- [Memcached, From Official Github](https://github.com/memcached/memcached#readme) +- [Memcached Tutorial](https://www.tutorialspoint.com/memcached/index.htm) diff --git a/src/roadmaps/backend/content/110-caching/101-server-side/readme.md b/src/roadmaps/backend/content/110-caching/101-server-side/index.md similarity index 56% rename from src/roadmaps/backend/content/110-caching/101-server-side/readme.md rename to src/roadmaps/backend/content/110-caching/101-server-side/index.md index 6fff96bb0..9d8fa2847 100644 --- a/src/roadmaps/backend/content/110-caching/101-server-side/readme.md +++ b/src/roadmaps/backend/content/110-caching/101-server-side/index.md @@ -6,7 +6,6 @@ When the user first requests for the webpage, the website goes under the normal Next time the user revisits the website, it loads the already saved or cached copy of the webpage, thus making it faster. -Free Content -Server-side caching -Server-side caching and Client-side caching +- [Server-side caching ](https://www.starwindsoftware.com/resource-library/server-side-caching/) +- [Server-side caching and Client-side caching](https://www.codingninjas.com/codestudio/library/server-side-caching-and-client-side-caching) diff --git a/src/roadmaps/backend/content/110-caching/102-client-side.md b/src/roadmaps/backend/content/110-caching/102-client-side.md index 317bfdd02..03dc6f64e 100644 --- a/src/roadmaps/backend/content/110-caching/102-client-side.md +++ b/src/roadmaps/backend/content/110-caching/102-client-side.md @@ -2,4 +2,4 @@ Client-side caching is the storage of network data to a local cache for future re-use. After an application fetches network data, it stores that resource in a local cache. Once a resource has been cached, the browser uses the cache on future requests for that resource to boost performance. -Everything you need to know about HTTP Caching +- [Everything you need to know about HTTP Caching](https://www.youtube.com/watch?v=HiBDZgTNpXY) diff --git a/src/roadmaps/backend/content/110-caching/readme.md b/src/roadmaps/backend/content/110-caching/index.md similarity index 100% rename from src/roadmaps/backend/content/110-caching/readme.md rename to src/roadmaps/backend/content/110-caching/index.md diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/100-md5.md b/src/roadmaps/backend/content/111-web-security-knowledge/100-md5.md index 1a558571d..6c777c109 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/100-md5.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/100-md5.md @@ -2,7 +2,6 @@ MD5 (Message-Digest Algorithm 5) is a hash function that is currently advised not to be used due to its extensive vulnerabilities. It is still used as a checksum to verify data integrity. -Free Content -Wikipedia - MD5 -What is MD5? -Why is MD5 not safe? +- [Wikipedia - MD5](https://en.wikipedia.org/wiki/MD5) +- [What is MD5?](https://www.techtarget.com/searchsecurity/definition/MD5) +- [Why is MD5 not safe?](https://infosecscout.com/why-md5-is-not-safe/) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/101-sha-family.md b/src/roadmaps/backend/content/111-web-security-knowledge/101-sha-family.md index 7483cf696..7036cbf20 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/101-sha-family.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/101-sha-family.md @@ -6,7 +6,6 @@ SHA (Secure Hash Algorithms) is a family of cryptographic hash functions created - SHA-2: This isn't an algorithm, but a set of them, with SHA-256 and SHA-512 being the most popular. SHA-2 is still secure and widely used. - SHA-3: Born in a competition, this is the newest member of the family. SHA-3 is very secure and doesn't carry the same design flaws as its brethren. -Free Content -Wikipedia - SHA-1 -Wikipedia - SHA-2 -Wikipedia - SHA-3 +- [Wikipedia - SHA-1](https://en.wikipedia.org/wiki/SHA-1) +- [Wikipedia - SHA-2](https://en.wikipedia.org/wiki/SHA-2) +- [Wikipedia - SHA-3](https://en.wikipedia.org/wiki/SHA-3) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/102-bcrypt.md b/src/roadmaps/backend/content/111-web-security-knowledge/102-bcrypt.md index 2d9bcbc68..2be99d74d 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/102-bcrypt.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/102-bcrypt.md @@ -2,7 +2,6 @@ bcrypt is a password hashing function, that has been proven reliable and secure since it's release in 1999. It has been implemented into most commonly-used programming languages. -Free Content -bcrypt's npm package -Understanding bcrypt -bcrypt explained +- [bcrypts npm package](https://www.npmjs.com/package/bcrypt) +- [Understanding bcrypt](https://auth0.com/blog/hashing-in-action-understanding-bcrypt/) +- [bcrypt explained](https://www.youtube.com/watch?v=O6cmuiTBZVs) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/104-scrypt.md b/src/roadmaps/backend/content/111-web-security-knowledge/104-scrypt.md index 35674b4cf..4fc4fcbf0 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/104-scrypt.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/104-scrypt.md @@ -2,5 +2,4 @@ Scrypt (pronounced "ess crypt") is a password hashing function (like bcrypt). It is designed to use a lot of hardware, which makes brute-force attacks more difficult. Scrypt is mainly used as a proof-of-work algorithm for cryptocurrencies. -Free Content -Wikipedia - Scrypt +- [Wikipedia - Scrypt](https://en.wikipedia.org/wiki/Scrypt) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/105-content-security-policy.md b/src/roadmaps/backend/content/111-web-security-knowledge/105-content-security-policy.md index 3e536d4ec..3c549feb8 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/105-content-security-policy.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/105-content-security-policy.md @@ -2,6 +2,5 @@ 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 -MDN — Content Security Policy (CSP) -Google Devs — Content Security Policy (CSP) +- [MDN — Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) +- [Google Devs — Content Security Policy (CSP)](https://developers.google.com/web/fundamentals/security/csp) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/105-https.md b/src/roadmaps/backend/content/111-web-security-knowledge/105-https.md index 3a4d92d2e..52bd4681c 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/105-https.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/105-https.md @@ -2,10 +2,9 @@ HTTPS is a secure way to send data between a web server and a browser. -Free Content -What is HTTPS? -Why HTTPS Matters -Enabling HTTPS on Your Servers -How HTTPS works (comic) -SSL, TLS, HTTP, HTTPS Explained -HTTPS — Stories from the field +- [What is HTTPS?](https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/) +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Enabling HTTPS on Your Servers](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https) +- [How HTTPS works (comic)](https://howhttps.works/) +- [SSL, TLS, HTTP, HTTPS Explained](https://www.youtube.com/watch?v=hExRDVZHhig) +- [HTTPS — Stories from the field](https://www.youtube.com/watch?v=GoXgl9r0Kjk) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/106-cors.md b/src/roadmaps/backend/content/111-web-security-knowledge/106-cors.md index 1079e74cb..bc6606fd2 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/106-cors.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/106-cors.md @@ -1,7 +1,6 @@ # 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 -Cross-Origin Resource Sharing (CORS) -CORS in 100 Seconds -CORS in 6 minutes +- [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) +- [CORS in 100 Seconds](https://www.youtube.com/watch?v=4KHiSt0oLJ0) +- [CORS in 6 minutes](https://www.youtube.com/watch?v=PNtFSVU-YTI) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/107-ssl-tls.md b/src/roadmaps/backend/content/111-web-security-knowledge/107-ssl-tls.md index d80f1f6e5..4d377cb57 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/107-ssl-tls.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/107-ssl-tls.md @@ -2,6 +2,5 @@ Secure Sockets Layer (SSL) and Transport Layer Security (TLS) are cryptographic protocols used to provide security in internet communications. These protocols encrypt the data that is transmitted over the web, so anyone who tries to intercept packets will not be able to interpret the data. One difference that is important to know is that SSL is now deprecated due to security flaws, and most modern web browsers no longer support it. But TLS is still secure and widely supported, so preferably use TLS. -Free Content -Wikipedia - SSL/TLS -Cloudflare - What is SSL? +- [Wikipedia - SSL/TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) +- [Cloudflare - What is SSL?](https://www.cloudflare.com/learning/ssl/what-is-ssl/) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/108-owasp.md b/src/roadmaps/backend/content/111-web-security-knowledge/108-owasp.md index b06e57dda..7e73b4c32 100644 --- a/src/roadmaps/backend/content/111-web-security-knowledge/108-owasp.md +++ b/src/roadmaps/backend/content/111-web-security-knowledge/108-owasp.md @@ -2,8 +2,7 @@ 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 -Wikipedia - OWASP -OWASP Application Security Verification Standard -OWASP Top 10 Security Risks -OWASP Cheatsheets +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Application Security Verification Standard](https://github.com/OWASP/ASVS) +- [OWASP Top 10 Security Risks](https://cheatsheetseries.owasp.org/IndexTopTen.html) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/index.md b/src/roadmaps/backend/content/111-web-security-knowledge/index.md new file mode 100644 index 000000000..2325eb205 --- /dev/null +++ b/src/roadmaps/backend/content/111-web-security-knowledge/index.md @@ -0,0 +1,10 @@ +# 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. + +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Web Application Security Testing Checklist](https://github.com/0xRadi/OWASP-Web-Checklist) +- [OWASP Top 10 Security Risks](https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) +- [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) diff --git a/src/roadmaps/backend/content/111-web-security-knowledge/readme.md b/src/roadmaps/backend/content/111-web-security-knowledge/readme.md deleted file mode 100644 index bee608013..000000000 --- a/src/roadmaps/backend/content/111-web-security-knowledge/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# 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 -Why HTTPS Matters -Wikipedia - OWASP -OWASP Web Application Security Testing Checklist -OWASP Top 10 Security Risks -OWASP Cheatsheets -Content Security Policy (CSP) diff --git a/src/roadmaps/backend/content/112-testing/100-integration-testing.md b/src/roadmaps/backend/content/112-testing/100-integration-testing.md index 292b022ae..dece42490 100644 --- a/src/roadmaps/backend/content/112-testing/100-integration-testing.md +++ b/src/roadmaps/backend/content/112-testing/100-integration-testing.md @@ -2,7 +2,6 @@ Integration testing is 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 -Integration Testing -How to Integrate and Test Your Tech Stack -What is Integration Testing? +- [Integration Testing](https://www.guru99.com/integration-testing.html) +- [How to Integrate and Test Your Tech Stack](https://thenewstack.io/how-to-integrate-and-test-your-tech-stack/) +- [What is Integration Testing?](https://youtu.be/QYCaaNz8emY) diff --git a/src/roadmaps/backend/content/112-testing/101-unit-testing.md b/src/roadmaps/backend/content/112-testing/101-unit-testing.md index c2bd3c9da..82487c084 100644 --- a/src/roadmaps/backend/content/112-testing/101-unit-testing.md +++ b/src/roadmaps/backend/content/112-testing/101-unit-testing.md @@ -2,6 +2,5 @@ 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 -Unit Testing Tutorial -What is Unit Testing? +- [Unit Testing Tutorial](https://www.guru99.com/unit-testing-guide.html) +- [What is Unit Testing?](https://youtu.be/3kzHmaeozDI) diff --git a/src/roadmaps/backend/content/112-testing/102-functional-testing.md b/src/roadmaps/backend/content/112-testing/102-functional-testing.md index 0b20907a2..45181641c 100644 --- a/src/roadmaps/backend/content/112-testing/102-functional-testing.md +++ b/src/roadmaps/backend/content/112-testing/102-functional-testing.md @@ -3,6 +3,5 @@ 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 -What is Functional Testing? -Functional Testing vs Non-Functional Testing +- [What is Functional Testing?](https://www.guru99.com/functional-testing.html) +- [Functional Testing vs Non-Functional Testing](https://youtu.be/j_79AXkG4PY) diff --git a/src/roadmaps/backend/content/112-testing/index.md b/src/roadmaps/backend/content/112-testing/index.md new file mode 100644 index 000000000..d7aff42f4 --- /dev/null +++ b/src/roadmaps/backend/content/112-testing/index.md @@ -0,0 +1,6 @@ +# 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. + +- [What is Software Testing?](https://www.guru99.com/software-testing-introduction-importance.html) +- [Testing Pyramid](https://www.browserstack.com/guide/testing-pyramid-for-test-automation) diff --git a/src/roadmaps/backend/content/112-testing/readme.md b/src/roadmaps/backend/content/112-testing/readme.md deleted file mode 100644 index 1a310f6c0..000000000 --- a/src/roadmaps/backend/content/112-testing/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# 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 -What is Software Testing? -Testing Pyramid diff --git a/src/roadmaps/backend/content/113-ci-cd.md b/src/roadmaps/backend/content/113-ci-cd.md index 22ca4222e..cdc1b35ee 100644 --- a/src/roadmaps/backend/content/113-ci-cd.md +++ b/src/roadmaps/backend/content/113-ci-cd.md @@ -2,10 +2,9 @@ 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 -DevOps CI/CD Explained in 100 Seconds by Fireship -Automate your Workflows with GitHub Actions -What is CI/CD? -A Primer: Continuous Integration and Continuous Delivery (CI/CD) -3 Ways to Use Automation in CI/CD Pipelines -Articles about CI/CD +- [DevOps CI/CD Explained in 100 Seconds by Fireship](https://www.youtube.com/watch?v=scEDHsr3APg) +- [Automate your Workflows with GitHub Actions](https://www.youtube.com/watch?v=nyKZTKQS_EQ) +- [What is CI/CD?](https://about.gitlab.com/topics/ci-cd/) +- [A Primer: Continuous Integration and Continuous Delivery (CI/CD)](https://thenewstack.io/a-primer-continuous-integration-and-continuous-delivery-ci-cd/) +- [3 Ways to Use Automation in CI/CD Pipelines](https://thenewstack.io/3-ways-to-use-automation-in-ci-cd-pipelines/) +- [Articles about CI/CD](https://thenewstack.io/category/ci-cd/) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/100-gof-design-patterns.md b/src/roadmaps/backend/content/114-design-and-development-principles/100-gof-design-patterns.md index b73a4a471..7567857f9 100644 --- a/src/roadmaps/backend/content/114-design-and-development-principles/100-gof-design-patterns.md +++ b/src/roadmaps/backend/content/114-design-and-development-principles/100-gof-design-patterns.md @@ -6,7 +6,6 @@ Design patterns are typical solutions to commonly occurring problems in software - Structural Patterns to provide relationship between objects - Behavioral Patterns to help define how objects interact -Free Content -Design Patterns for Humans -GOF design patterns -Design Patterns +- [Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans) +- [GOF design patterns](https://springframework.guru/gang-of-four-design-patterns/) +- [Design Patterns](https://refactoring.guru/design-patterns) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/101-domain-driven-design.md b/src/roadmaps/backend/content/114-design-and-development-principles/101-domain-driven-design.md index cd1c08f0d..d3cfb957a 100644 --- a/src/roadmaps/backend/content/114-design-and-development-principles/101-domain-driven-design.md +++ b/src/roadmaps/backend/content/114-design-and-development-principles/101-domain-driven-design.md @@ -10,6 +10,4 @@ DDD connects the implementation to an evolving model and it is predicated on the - Basing complex designs on a model of the domain; - Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems. -Free Content - -Domain Driven Design Quickly +- [Domain Driven Design Quickly](https://matfrs2.github.io/RS2/predavanja/literatura/Avram%20A,%20Marinescu%20F.%20-%20Domain%20Driven%20Design%20Quickly.pdf) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/102-test-driven-development.md b/src/roadmaps/backend/content/114-design-and-development-principles/102-test-driven-development.md index dd0e772fe..5ccdbd189 100644 --- a/src/roadmaps/backend/content/114-design-and-development-principles/102-test-driven-development.md +++ b/src/roadmaps/backend/content/114-design-and-development-principles/102-test-driven-development.md @@ -2,7 +2,6 @@ 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 -What is Test Driven Development (TDD)? -Test-driven development -Agile in Practice: Test Driven Development +- [What is Test Driven Development (TDD)?](https://www.guru99.com/test-driven-development.html) +- [Test-driven development](https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/) +- [Agile in Practice: Test Driven Development](https://youtu.be/uGaNkTahrIw) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/103-cqrs.md b/src/roadmaps/backend/content/114-design-and-development-principles/103-cqrs.md index 645eafe67..f4b22b4d1 100644 --- a/src/roadmaps/backend/content/114-design-and-development-principles/103-cqrs.md +++ b/src/roadmaps/backend/content/114-design-and-development-principles/103-cqrs.md @@ -2,5 +2,4 @@ CQRS, or command query responsibility segregation, defines an architectural pattern where the main focus is to separate the approach of reading and writing operations for a data store. CQRS can also be used along with Event Sourcing pattern in order to persist application state as an ordered of sequence events, making it possible to restore data to any point in time. -Free Content -CQRS Pattern +- [CQRS Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/104-event-sourcing.md b/src/roadmaps/backend/content/114-design-and-development-principles/104-event-sourcing.md index 4953836b6..fb73d571b 100644 --- a/src/roadmaps/backend/content/114-design-and-development-principles/104-event-sourcing.md +++ b/src/roadmaps/backend/content/114-design-and-development-principles/104-event-sourcing.md @@ -6,5 +6,4 @@ One of the main benefits of event sourcing is that it provides a clear and audit Event sourcing is often used in conjunction with other patterns, such as Command Query Responsibility Segregation (CQRS) and domain-driven design, to build scalable and responsive systems with complex business logic. It is also useful for building systems that need to support undo/redo functionality or that need to integrate with external systems. -Free Content -Event Sourcing - Martin Fowler +- [Event Sourcing - Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html) diff --git a/src/roadmaps/backend/content/114-design-and-development-principles/readme.md b/src/roadmaps/backend/content/114-design-and-development-principles/index.md similarity index 100% rename from src/roadmaps/backend/content/114-design-and-development-principles/readme.md rename to src/roadmaps/backend/content/114-design-and-development-principles/index.md diff --git a/src/roadmaps/backend/content/115-architectural-patterns/100-monolithic-apps.md b/src/roadmaps/backend/content/115-architectural-patterns/100-monolithic-apps.md index ba0dab670..c564435ca 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/100-monolithic-apps.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/100-monolithic-apps.md @@ -2,6 +2,5 @@ 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 -Pattern: Monolithic Architecture -Monolithic Architecture - Advantages & Disadvantages +- [Pattern: Monolithic Architecture](https://microservices.io/patterns/monolithic.html) +- [Monolithic Architecture - Advantages & Disadvantages](https://datamify.medium.com/monolithic-architecture-advantages-and-disadvantages-e71a603eec89) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/101-microservices.md b/src/roadmaps/backend/content/115-architectural-patterns/101-microservices.md index e6752515d..2a3fce3c4 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/101-microservices.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/101-microservices.md @@ -2,9 +2,8 @@ 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 -Pattern: Microservice Architecture -What is Microservices? -Microservices 101 -Primer: Microservices Explained -Articles about Microservices +- [Pattern: Microservice Architecture](https://microservices.io/patterns/microservices.html) +- [What is Microservices?](https://smartbear.com/solutions/microservices/) +- [Microservices 101](https://thenewstack.io/microservices-101/) +- [Primer: Microservices Explained](https://thenewstack.io/primer-microservices-explained/) +- [Articles about Microservices](https://thenewstack.io/category/microservices/) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/102-soa.md b/src/roadmaps/backend/content/115-architectural-patterns/102-soa.md index a3edddaae..f90ecae15 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/102-soa.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/102-soa.md @@ -2,5 +2,4 @@ SOA, or service-oriented architecture, defines a way to make software components reusable via service interfaces. These interfaces utilize common communication standards in such a way that they can be rapidly incorporated into new applications without having to perform deep integration each time. -Free Content -Reference Architecture Foundation for Service Oriented Architecture +- [Reference Architecture Foundation for Service Oriented Architecture](http://docs.oasis-open.org/soa-rm/soa-ra/v1.0/soa-ra.html) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/104-serverless.md b/src/roadmaps/backend/content/115-architectural-patterns/104-serverless.md index 65f49a4e9..257e1b035 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/104-serverless.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/104-serverless.md @@ -2,7 +2,6 @@ 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 -Serverless -AWS Services -Serverless Computing in 100 Seconds +- [Serverless](https://www.ibm.com/cloud/learn/serverless) +- [AWS Services](https://aws.amazon.com/serverless/) +- [Serverless Computing in 100 Seconds](https://www.youtube.com/watch?v=W_VV2Fx32_Y&ab_channel=Fireship) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/105-service-mesh.md b/src/roadmaps/backend/content/115-architectural-patterns/105-service-mesh.md index e4f88d3a9..9d127fdaa 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/105-service-mesh.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/105-service-mesh.md @@ -8,6 +8,5 @@ Service meshes are typically implemented using a sidecar pattern, in which the e Service meshes are commonly used in cloud-native architectures and are often managed using a control plane, which is responsible for configuring and managing the envoys. Some popular service mesh implementations include Istio and Linkerd. -Free Content -What is a Service Mesh? -Service Mesh Explained - Cloud Native Computing Foundation (CNCF) +- [What is a Service Mesh?](https://www.nginx.com/blog/what-is-a-service-mesh/) +- [Service Mesh Explained - Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/blog/2018/05/02/service-mesh-explained/) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/106-twelve-factor-apps.md b/src/roadmaps/backend/content/115-architectural-patterns/106-twelve-factor-apps.md index 880149dfc..c03ed53a4 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/106-twelve-factor-apps.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/106-twelve-factor-apps.md @@ -19,5 +19,4 @@ The Twelve-Factor App methodology consists of the following principles: The Twelve-Factor App methodology is widely adopted by developers of SaaS applications, and it is seen as a best practice for building cloud-native applications that are scalable, maintainable, and easy to deploy. -Free Content -The Twelve-Factor App +- [The Twelve-Factor App](https://12factor.net/) diff --git a/src/roadmaps/backend/content/115-architectural-patterns/readme.md b/src/roadmaps/backend/content/115-architectural-patterns/index.md similarity index 56% rename from src/roadmaps/backend/content/115-architectural-patterns/readme.md rename to src/roadmaps/backend/content/115-architectural-patterns/index.md index 7aefea86c..578706230 100644 --- a/src/roadmaps/backend/content/115-architectural-patterns/readme.md +++ b/src/roadmaps/backend/content/115-architectural-patterns/index.md @@ -2,5 +2,4 @@ An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context.The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. -Reference Resource -Architectural Patterns in a nutshell +- [Architectural Patterns in a nutshell](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013) diff --git a/src/roadmaps/backend/content/116-search-engines/100-elasticsearch.md b/src/roadmaps/backend/content/116-search-engines/100-elasticsearch.md index 882db2bc2..e3fffda71 100644 --- a/src/roadmaps/backend/content/116-search-engines/100-elasticsearch.md +++ b/src/roadmaps/backend/content/116-search-engines/100-elasticsearch.md @@ -2,9 +2,7 @@ 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 - -Elasticsearch Website -Elasticsearch Documentation +- [Elasticsearch Website](https://www.elastic.co/elasticsearch/) +- [Elasticsearch Documentation](https://www.elastic.co/guide/index.html) diff --git a/src/roadmaps/backend/content/116-search-engines/101-solr.md b/src/roadmaps/backend/content/116-search-engines/101-solr.md index b690b0d1b..17ff04bb2 100644 --- a/src/roadmaps/backend/content/116-search-engines/101-solr.md +++ b/src/roadmaps/backend/content/116-search-engines/101-solr.md @@ -2,7 +2,5 @@ Solr is highly reliable, scalable and fault tolerant, providing distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites. -Free Content - -Official Website -Official Documentation +- [Official Website](https://solr.apache.org/) +- [Official Documentation](https://solr.apache.org/resources.html#documentation) diff --git a/src/roadmaps/backend/content/116-search-engines/readme.md b/src/roadmaps/backend/content/116-search-engines/index.md similarity index 100% rename from src/roadmaps/backend/content/116-search-engines/readme.md rename to src/roadmaps/backend/content/116-search-engines/index.md diff --git a/src/roadmaps/backend/content/117-message-brokers/100-rabbitmq.md b/src/roadmaps/backend/content/117-message-brokers/100-rabbitmq.md index 1603a8656..2c5c822d1 100644 --- a/src/roadmaps/backend/content/117-message-brokers/100-rabbitmq.md +++ b/src/roadmaps/backend/content/117-message-brokers/100-rabbitmq.md @@ -2,6 +2,5 @@ With tens of thousands of users, RabbitMQ is one of the most popular open-source message brokers. RabbitMQ is lightweight and easy to deploy on-premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements. -Free Content -RabbitMQ Tutorials -RabbitMQ Tutorial - Message Queues and Distributed Systems +- [RabbitMQ Tutorials](https://www.rabbitmq.com/getstarted.html) +- [RabbitMQ Tutorial - Message Queues and Distributed Systems](https://www.youtube.com/watch?v=nFxjaVmFj5E) diff --git a/src/roadmaps/backend/content/117-message-brokers/101-kafka.md b/src/roadmaps/backend/content/117-message-brokers/101-kafka.md index 51634bf0d..6ae78883b 100644 --- a/src/roadmaps/backend/content/117-message-brokers/101-kafka.md +++ b/src/roadmaps/backend/content/117-message-brokers/101-kafka.md @@ -2,6 +2,5 @@ Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. -Free Content -Apache Kafka quickstart -Apache Kafka Fundamentals +- [Apache Kafka quickstart](https://kafka.apache.org/quickstart) +- [Apache Kafka Fundamentals](https://www.youtube.com/watch?v=B5j3uNBH8X4) diff --git a/src/roadmaps/backend/content/117-message-brokers/readme.md b/src/roadmaps/backend/content/117-message-brokers/index.md similarity index 61% rename from src/roadmaps/backend/content/117-message-brokers/readme.md rename to src/roadmaps/backend/content/117-message-brokers/index.md index 397e61965..21d825001 100644 --- a/src/roadmaps/backend/content/117-message-brokers/readme.md +++ b/src/roadmaps/backend/content/117-message-brokers/index.md @@ -2,5 +2,4 @@ Message brokers are an inter-application communication technology to help build a common integration mechanism to support cloud-native, microservices-based, serverless, and hybrid cloud architectures. Two of the most famous message brokers are `RabbitMQ` and `Apache Kafka` -Free Content -Introduction to Message Brokers +- [Introduction to Message Brokers](https://www.youtube.com/watch?v=57Qr9tk6Uxc) diff --git a/src/roadmaps/backend/content/118-containerization/100-docker.md b/src/roadmaps/backend/content/118-containerization/100-docker.md index b6d8875b8..66c86af5f 100644 --- a/src/roadmaps/backend/content/118-containerization/100-docker.md +++ b/src/roadmaps/backend/content/118-containerization/100-docker.md @@ -2,8 +2,7 @@ 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 -Docker Documentation -What is Docker | AWS -Docker Tutorial -Docker simplified in 55 seconds +- [Docker Documentation](https://docs.docker.com/) +- [What is Docker | AWS ](https://aws.amazon.com/docker/) +- [Docker Tutorial](https://youtu.be/3c-iBn73dDE) +- [Docker simplified in 55 seconds](https://youtu.be/vP_4DlOH1G4) diff --git a/src/roadmaps/backend/content/118-containerization/102-lxc.md b/src/roadmaps/backend/content/118-containerization/102-lxc.md index 81ec1925a..4c898b8b3 100644 --- a/src/roadmaps/backend/content/118-containerization/102-lxc.md +++ b/src/roadmaps/backend/content/118-containerization/102-lxc.md @@ -2,8 +2,7 @@ LXC is an abbreviation used for Linux Containers which is an operating system that is used for running multiple Linux systems virtually on a controlled host via a single Linux kernel. LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers. -Free Content -LXC Documentation -What is LXC? -Linux Container (LXC) Introduction -Getting started with LXC containers +- [LXC Documentation](https://linuxcontainers.org/lxc/documentation/) +- [What is LXC?](https://linuxcontainers.org/lxc/introduction/) +- [Linux Container (LXC) Introduction](https://youtu.be/_KnmRdK69qM) +- [Getting started with LXC containers](https://youtu.be/CWmkSj_B-wo) diff --git a/src/roadmaps/backend/content/118-containerization/103-kubernetes.md b/src/roadmaps/backend/content/118-containerization/103-kubernetes.md index e08de302d..d9173bd7a 100644 --- a/src/roadmaps/backend/content/118-containerization/103-kubernetes.md +++ b/src/roadmaps/backend/content/118-containerization/103-kubernetes.md @@ -4,9 +4,8 @@ Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) contain The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. -Free Content -Kubernetes Website -Kubernetes Documentation -Kubernetes Crash Course for Absolute Beginners -Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care -Kubernetes: An Overview +- [Kubernetes Website](https://kubernetes.io/) +- [Kubernetes Documentation](https://kubernetes.io/docs/home/) +- [Kubernetes Crash Course for Absolute Beginners](https://www.youtube.com/watch?v=s_o8dwzRlu4) +- [Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care](https://thenewstack.io/primer-how-kubernetes-came-to-be-what-it-is-and-why-you-should-care/) +- [Kubernetes: An Overview](https://thenewstack.io/kubernetes-an-overview/) diff --git a/src/roadmaps/backend/content/118-containerization/index.md b/src/roadmaps/backend/content/118-containerization/index.md new file mode 100644 index 000000000..c15375fff --- /dev/null +++ b/src/roadmaps/backend/content/118-containerization/index.md @@ -0,0 +1,6 @@ +# Containerization vs. Virtualization + +Containers and virtual machines are the two most popular approaches to setting up a software infrastructure for your organization. + +- [Containerization vs. Virtualization: Everything you need to know](https://middleware.io/blog/containerization-vs-virtualization/) +- [Containerization or Virtualization - The Differences ](https://www.youtube.com/watch?v=1WnDHitznGY) diff --git a/src/roadmaps/backend/content/118-containerization/readme.md b/src/roadmaps/backend/content/118-containerization/readme.md deleted file mode 100644 index c2c3e6792..000000000 --- a/src/roadmaps/backend/content/118-containerization/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Containerization vs. Virtualization - -Containers and virtual machines are the two most popular approaches to setting up a software infrastructure for your organization. - -Free Content -Containerization vs. Virtualization: Everything you need to know -Containerization or Virtualization - The Differences diff --git a/src/roadmaps/backend/content/119-graphql/100-apollo.md b/src/roadmaps/backend/content/119-graphql/100-apollo.md index 54ad410dd..a898919b1 100644 --- a/src/roadmaps/backend/content/119-graphql/100-apollo.md +++ b/src/roadmaps/backend/content/119-graphql/100-apollo.md @@ -2,8 +2,7 @@ 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 -Apollo Website -Official Docs -Official YouTube Channel -GraphQL With React Tutorial - Apollo Client +- [Apollo Website](https://www.apollographql.com) +- [Official Docs](https://www.apollographql.com/docs/) +- [Official YouTube Channel](https://www.youtube.com/c/ApolloGraphQL/) +- [GraphQL With React Tutorial - Apollo Client](https://www.youtube.com/watch?v=YyUWW04HwKY) diff --git a/src/roadmaps/backend/content/119-graphql/101-relay-modern.md b/src/roadmaps/backend/content/119-graphql/101-relay-modern.md index 55722ec2e..4a8bad9ac 100644 --- a/src/roadmaps/backend/content/119-graphql/101-relay-modern.md +++ b/src/roadmaps/backend/content/119-graphql/101-relay-modern.md @@ -2,6 +2,5 @@ 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 Website -Introduction to Relay modern +- [Official Website](https://relay.dev/) +- [Introduction to Relay modern](https://relay.dev/docs/) diff --git a/src/roadmaps/backend/content/119-graphql/index.md b/src/roadmaps/backend/content/119-graphql/index.md new file mode 100644 index 000000000..220ab2662 --- /dev/null +++ b/src/roadmaps/backend/content/119-graphql/index.md @@ -0,0 +1,8 @@ +# 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. + +- [Introduction to GraphQL](https://graphql.org/learn/) +- [The Fullstack Tutorial for GraphQL](https://www.howtographql.com/) +- [GraphQL Tutorials](https://odyssey.apollographql.com/) +- [GraphQL Course for Beginners](https://www.youtube.com/watch?v=ed8SzALpx1Q) diff --git a/src/roadmaps/backend/content/119-graphql/readme.md b/src/roadmaps/backend/content/119-graphql/readme.md deleted file mode 100644 index d1722008b..000000000 --- a/src/roadmaps/backend/content/119-graphql/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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 -Introduction to GraphQL -The Fullstack Tutorial for GraphQL -GraphQL Tutorials -GraphQL Course for Beginners diff --git a/src/roadmaps/backend/content/120-graph-databases/100-neo4j.md b/src/roadmaps/backend/content/120-graph-databases/100-neo4j.md index deaad02a3..0e8fa2d03 100644 --- a/src/roadmaps/backend/content/120-graph-databases/100-neo4j.md +++ b/src/roadmaps/backend/content/120-graph-databases/100-neo4j.md @@ -2,7 +2,6 @@ Neo4j AuraDB is a fast, reliable, scalable, and completely automated Neo4j graph database, provided as a cloud service. -Free Content -Official Website -Official Docs -Neo4j (Graph Database) Crash Course +- [Official Website](https://neo4j.com/) +- [Official Docs](https://neo4j.com/docs/) +- [Neo4j (Graph Database) Crash Course](https://www.youtube.com/watch?v=8jNPelugC2s) diff --git a/src/roadmaps/backend/content/120-graph-databases/index.md b/src/roadmaps/backend/content/120-graph-databases/index.md new file mode 100644 index 000000000..4a9c04c18 --- /dev/null +++ b/src/roadmaps/backend/content/120-graph-databases/index.md @@ -0,0 +1,6 @@ +# Graph databases + +A graph database stores nodes and relationships instead of tables, or documents. Data is stored just like you might sketch ideas on a whiteboard. Your data is stored without restricting it to a pre-defined model, allowing a very flexible way of thinking about and using it. + +- [What is a Graph Database?](https://neo4j.com/developer/graph-database/) +- [Graph Databases VS Relational Databases](https://www.freecodecamp.org/news/graph-database-vs-relational-database/) diff --git a/src/roadmaps/backend/content/120-graph-databases/readme.md b/src/roadmaps/backend/content/120-graph-databases/readme.md deleted file mode 100644 index bc13f5492..000000000 --- a/src/roadmaps/backend/content/120-graph-databases/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Graph databases - -A graph database stores nodes and relationships instead of tables, or documents. Data is stored just like you might sketch ideas on a whiteboard. Your data is stored without restricting it to a pre-defined model, allowing a very flexible way of thinking about and using it. - -Free Content -What is a Graph Database? -Graph Databases VS Relational Databases diff --git a/src/roadmaps/backend/content/121-web-sockets.md b/src/roadmaps/backend/content/121-web-sockets.md index 6a8f0d1db..4a81115ad 100644 --- a/src/roadmaps/backend/content/121-web-sockets.md +++ b/src/roadmaps/backend/content/121-web-sockets.md @@ -2,7 +2,6 @@ Web sockets are defined as a two-way communication between the servers and the clients, which mean both the parties, communicate and exchange data at the same time. This protocol defines a full duplex communication from the ground up. Web sockets take a step forward in bringing desktop rich functionalities to the web browsers. -Free Content -Introduction to WebSockets -A Beginner's Guide to WebSockets -Socket.io Library Bidirectional and low-latency communication for every platform +- [Introduction to WebSockets](https://www.tutorialspoint.com/websockets/index.htm) +- [A Beginners Guide to WebSockets](https://www.youtube.com/watch?v=8ARodQ4Wlf4) +- [Socket.io Library Bidirectional and low-latency communication for every platform](https://socket.io/) diff --git a/src/roadmaps/backend/content/122-server-sent-events.md b/src/roadmaps/backend/content/122-server-sent-events.md index 512625dfa..2ff7a9e21 100644 --- a/src/roadmaps/backend/content/122-server-sent-events.md +++ b/src/roadmaps/backend/content/122-server-sent-events.md @@ -6,5 +6,4 @@ SSE is useful for applications that require real-time updates, such as chat syst To use SSE, the client must create an EventSource object and specify the URL of the server-side script that will send the events. The server can then send events by writing them to the response stream with the proper formatting. -Free Content -Server-Sent Events - MDN +- [Server-Sent Events - MDN](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) diff --git a/src/roadmaps/backend/content/122-web-servers/100-nginx.md b/src/roadmaps/backend/content/122-web-servers/100-nginx.md index a99b98d97..f3ef2387a 100644 --- a/src/roadmaps/backend/content/122-web-servers/100-nginx.md +++ b/src/roadmaps/backend/content/122-web-servers/100-nginx.md @@ -2,6 +2,5 @@ NGINX is a powerful web server and uses a non-threaded, event-driven architecture that enables it to outperform Apache if configured correctly. It can also do other important things, such as load balancing, HTTP caching, or be used as a reverse proxy. -Free Content -Official Website -NGINX Explained in 100 Seconds +- [Official Website](https://nginx.org/) +- [NGINX Explained in 100 Seconds](https://www.youtube.com/watch?v=JKxlsvZXG7c) diff --git a/src/roadmaps/backend/content/122-web-servers/101-apache.md b/src/roadmaps/backend/content/122-web-servers/101-apache.md index eb7663c69..803a8735a 100644 --- a/src/roadmaps/backend/content/122-web-servers/101-apache.md +++ b/src/roadmaps/backend/content/122-web-servers/101-apache.md @@ -2,6 +2,5 @@ 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 -Apache Server Website -What is Apache Web Server? +- [Apache Server Website](https://httpd.apache.org/) +- [What is Apache Web Server?](https://www.youtube.com/watch?v=kaaenHXO4t4) diff --git a/src/roadmaps/backend/content/122-web-servers/102-caddy.md b/src/roadmaps/backend/content/122-web-servers/102-caddy.md index 594f8aaf7..90598c365 100644 --- a/src/roadmaps/backend/content/122-web-servers/102-caddy.md +++ b/src/roadmaps/backend/content/122-web-servers/102-caddy.md @@ -2,6 +2,5 @@ The Caddy web server is an extensible, cross-platform, open-source web server written in Go. It has some really nice features like automatic SSL/HTTPs and a really easy configuration file. -Free Content -Official Website -Getting started with Caddy the HTTPS Web Server from scratch +- [Official Website](https://caddyserver.com/) +- [Getting started with Caddy the HTTPS Web Server from scratch](https://www.youtube.com/watch?v=t4naLFSlBpQ) diff --git a/src/roadmaps/backend/content/122-web-servers/103-ms-iis.md b/src/roadmaps/backend/content/122-web-servers/103-ms-iis.md index aaf3f8987..7a2699bd8 100644 --- a/src/roadmaps/backend/content/122-web-servers/103-ms-iis.md +++ b/src/roadmaps/backend/content/122-web-servers/103-ms-iis.md @@ -2,6 +2,5 @@ Internet Information Services (IIS) for Windows® Server is a flexible, secure and manageable Web server for hosting anything on the Web. -Free Content -Official Website -Learn Windows Web Server IIS +- [Official Website](https://www.iis.net/) +- [Learn Windows Web Server IIS](https://www.youtube.com/watch?v=1VdxPWwtISA) diff --git a/src/roadmaps/backend/content/122-web-servers/readme.md b/src/roadmaps/backend/content/122-web-servers/index.md similarity index 79% rename from src/roadmaps/backend/content/122-web-servers/readme.md rename to src/roadmaps/backend/content/122-web-servers/index.md index a81adb459..781dc7a22 100644 --- a/src/roadmaps/backend/content/122-web-servers/readme.md +++ b/src/roadmaps/backend/content/122-web-servers/index.md @@ -12,6 +12,5 @@ A software web server has a number of software components that regulate how host Basically, an HTTP request is made by a browser anytime it wants a file that is stored on a web server. The relevant (hardware) web server receives the request, which is then accepted by the appropriate (software) HTTP server, which then locates the requested content and returns it to the browser over HTTP. (If the server cannot locate the requested page, it responds with a 404 error.) -Free Content -What is a Web Server -Web Server Concepts and Examples +- [What is a Web Server ](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server) +- [Web Server Concepts and Examples](https://youtu.be/9J1nJOivdyw) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/100-graceful-degradation.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/100-graceful-degradation.md index 733b5e5eb..b2e21f24b 100644 --- a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/100-graceful-degradation.md +++ b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/100-graceful-degradation.md @@ -4,8 +4,7 @@ Graceful degradation is a design principle that states that a system should be d Graceful degradation is often used as an alternative to progressive enhancement, a design principle that states that a system should be designed to take advantage of advanced features and technologies if they are available. -Free Content -What is Graceful Degradation & Why Does it Matter? -Four Considerations When Designing Systems For Graceful Degradation -The Art of Graceful Degradation +- [What is Graceful Degradation & Why Does it Matter?](https://blog.hubspot.com/website/graceful-degradation) +- [Four Considerations When Designing Systems For Graceful Degradation](https://newrelic.com/blog/best-practices/design-software-for-graceful-degradation) +- [The Art of Graceful Degradation](https://farfetchtechblog.com/en/blog/post/the-art-of-failure-ii-graceful-degradation/) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/101-throttling.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/101-throttling.md index 6e1ca6807..136b0d42b 100644 --- a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/101-throttling.md +++ b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/101-throttling.md @@ -10,5 +10,4 @@ There are several ways to implement throttling in a cloud environment: Throttling is an important aspect of cloud design, as it helps to ensure that resources are used efficiently and that the system remains stable and available. It is often used in conjunction with other design patterns, such as auto-scaling and load balancing, to provide a scalable and resilient cloud environment. -Free Content -Throttling - AWS Well-Architected Framework +- [Throttling - AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/serverless/patterns/throttling/) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/102-backpressure.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/102-backpressure.md index 6b5c9fa29..8d1875623 100644 --- a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/102-backpressure.md +++ b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/102-backpressure.md @@ -10,5 +10,4 @@ There are several ways to implement backpressure in a cloud environment: Backpressure is an important aspect of cloud design, as it helps to ensure that data is processed efficiently and that the system remains stable and available. It is often used in conjunction with other design patterns, such as auto-scaling and load balancing, to provide a scalable and resilient cloud environment. -Free Content -Backpressure - AWS Well-Architected Framework +- [Backpressure - AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/serverless/patterns/backpressure/) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/103-loadshifting.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/103-loadshifting.md index 989ee45a8..00f1c1aa4 100644 --- a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/103-loadshifting.md +++ b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/103-loadshifting.md @@ -10,5 +10,4 @@ There are several ways to implement load shifting in a cloud environment: Load shifting is an important aspect of cloud design, as it helps to ensure that resources are used efficiently and that the system remains stable and available. It is often used in conjunction with other design patterns, such as throttling and backpressure, to provide a scalable and resilient cloud environment. -Free Content -Load Shifting - AWS Well-Architected Framework +- [Load Shifting - AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/serverless/patterns/load-shifting/) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/104-circuit-breaker.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/104-circuit-breaker.md index 2a0ee1536..99ef5ca01 100644 --- a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/104-circuit-breaker.md +++ b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/104-circuit-breaker.md @@ -6,5 +6,4 @@ A circuit breaker consists of three states: closed, open, and half-open. In the The circuit breaker design pattern is useful for protecting a system from failures or excessive load by providing a way to temporarily stop certain operations and allow the system to recover. It is often used in conjunction with other design patterns, such as retries and fallbacks, to provide a more robust and resilient cloud environment. -Free Content -Circuit Breaker - AWS Well-Architected Framework +- [Circuit Breaker - AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/serverless/patterns/circuit-breaker/) diff --git a/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/readme.md b/src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/index.md similarity index 100% rename from src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/readme.md rename to src/roadmaps/backend/content/123-scalability/100-mitigation-strategies/index.md diff --git a/src/roadmaps/backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md b/src/roadmaps/backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md index 75e661840..38503b669 100644 --- a/src/roadmaps/backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md +++ b/src/roadmaps/backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md @@ -6,7 +6,6 @@ Backend monitoring allows the user to view the performance of infrastructure i.e Telemetry is the process of continuously collecting data from different components of the application. This data helps engineering teams to troubleshoot issues across services and identify the root causes. In other words, telemetry data powers observability for your distributed applications. -Free Content -What is Instrumentation? -What is Monitoring? -What is Telemetry? +- [What is Instrumentation?](https://en.wikipedia.org/wiki/Instrumentation_(computer_programming)) +- [What is Monitoring?](https://www.yottaa.com/performance-monitoring-backend-vs-front-end-solutions/) +- [What is Telemetry?](https://www.sumologic.com/insight/what-is-telemetry/) diff --git a/src/roadmaps/backend/content/123-scalability/102-migration-strategies.md b/src/roadmaps/backend/content/123-scalability/102-migration-strategies.md index 3df74d204..fced4b266 100644 --- a/src/roadmaps/backend/content/123-scalability/102-migration-strategies.md +++ b/src/roadmaps/backend/content/123-scalability/102-migration-strategies.md @@ -2,6 +2,5 @@ Learn how to run database migrations effectively. Especially zero downtime multi-phase schema migrations. Rather than make all changes at once, do smaller incremental changes to allow old code, and new code to worth with the database at the same time, before removing old code, and finally removing the parts of the database schema which is no longer used. -Free Content -Databases as a Challenge for Continuous Delivery +- [Databases as a Challenge for Continuous Delivery](https://phauer.com/2015/databases-challenge-continuous-delivery/) diff --git a/src/roadmaps/backend/content/123-scalability/103-horizontal-vertical-scaling.md b/src/roadmaps/backend/content/123-scalability/103-horizontal-vertical-scaling.md index eefa3f4cb..c83043044 100644 --- a/src/roadmaps/backend/content/123-scalability/103-horizontal-vertical-scaling.md +++ b/src/roadmaps/backend/content/123-scalability/103-horizontal-vertical-scaling.md @@ -2,9 +2,7 @@ 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 - -Horizontal vs Vertical Scaling -Scaling In Databases -System Design Basics: Horizontal vs. Vertical Scaling -System Design 101 +- [Horizontal vs Vertical Scaling](https://touchstonesecurity.com/horizontal-vs-vertical-scaling-what-you-need-to-know/) +- [Scaling In Databases](https://www.geeksforgeeks.org/horizontal-and-vertical-scaling-in-databases/) +- [System Design Basics: Horizontal vs. Vertical Scaling](https://youtu.be/xpDnVSmNFX0) +- [System Design 101](https://www.youtube.com/watch?v=Y-Gl4HEyeUQ) diff --git a/src/roadmaps/backend/content/123-scalability/104-observability.md b/src/roadmaps/backend/content/123-scalability/104-observability.md index 419d6f387..c346f3e7a 100644 --- a/src/roadmaps/backend/content/123-scalability/104-observability.md +++ b/src/roadmaps/backend/content/123-scalability/104-observability.md @@ -6,9 +6,8 @@ So what makes a system to be "observable"? It is its ability of producing and co You can of course implement all those features by yourself, but there are a lot of softwares out there that can help you with it like Datadog, Sentry and CloudWatch. -Free Content -DataDog Docs -AWS CloudWatch Docs -Sentry Docs -AWS re:Invent 2017: Improving Microservice and Serverless Observability with Monitor -Observability and Instrumentation: What They Are and Why They Matter \ No newline at end of file +- [DataDog Docs](https://docs.datadoghq.com/) +- [AWS CloudWatch Docs](https://aws.amazon.com/cloudwatch/getting-started/) +- [Sentry Docs](https://docs.sentry.io/) +- [AWS re:Invent 2017: Improving Microservice and Serverless Observability with Monitor](https://www.youtube.com/watch?v=Wx0SHRb2xcI) +- [Observability and Instrumentation: What They Are and Why They Matter](https://newrelic.com/blog/best-practices/observability-instrumentation) \ No newline at end of file diff --git a/src/roadmaps/backend/content/123-scalability/readme.md b/src/roadmaps/backend/content/123-scalability/index.md similarity index 72% rename from src/roadmaps/backend/content/123-scalability/readme.md rename to src/roadmaps/backend/content/123-scalability/index.md index eeeb6485e..448ad7d4b 100644 --- a/src/roadmaps/backend/content/123-scalability/readme.md +++ b/src/roadmaps/backend/content/123-scalability/index.md @@ -14,6 +14,5 @@ When you think about the infrastructure of a scalable system, you have two main The main difference between on-premises and cloud resources will be FLEXIBILITY, on cloud providers you don't really need to plan ahead, you can upgrade your infrastructure with a couple of clicks, while with on-premises resources you will need a certain level of planning. -Free Content -Scalable Architecture: A Definition and How-To Guide -Scaling Distributed Systems - Software Architecture Introduction \ No newline at end of file +- [Scalable Architecture: A Definition and How-To Guide](https://www.sentinelone.com/blog/scalable-architecture/) +- [Scaling Distributed Systems - Software Architecture Introduction](https://www.youtube.com/watch?v=gxfERVP18-g) \ No newline at end of file diff --git a/src/roadmaps/backend/content/readme.md b/src/roadmaps/backend/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/backend/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/100-what-is-blockchain.md b/src/roadmaps/blockchain/content/100-blockchain-basics/100-what-is-blockchain.md index 78a76ebe0..48c337caa 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/100-what-is-blockchain.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/100-what-is-blockchain.md @@ -2,8 +2,7 @@ A blockchain is a decentralized, distributed, and oftentimes public, digital ledger consisting of records called blocks that is used to record transactions across many computers so that any involved block cannot be altered retroactively, without the alteration of all subsequent blocks. -Free Content -Blockchain Explained -What is decentralization? -How does a blockchain work? -What Is a Blockchain? | Blockchain Basics for Developers +- [Blockchain Explained](https://www.investopedia.com/terms/b/blockchain.asp) +- [What is decentralization?](https://aws.amazon.com/blockchain/decentralization-in-blockchain/) +- [How does a blockchain work?](https://youtu.be/SSo_EIwHSd4) +- [What Is a Blockchain? | Blockchain Basics for Developers](https://youtu.be/4ff9esY_4aU) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/101-decentralization.md b/src/roadmaps/blockchain/content/100-blockchain-basics/101-decentralization.md index c5e64ff4a..6fad77ddd 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/101-decentralization.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/101-decentralization.md @@ -2,6 +2,5 @@ In blockchain, decentralization refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network. Decentralized networks strive to reduce the level of trust that participants must place in one another, and deter their ability to exert authority or control over one another in ways that degrade the functionality of the network. -Free Content -What is decentralization? -What is Decentralization in Blockchain? +- [What is decentralization?](https://aws.amazon.com/blockchain/decentralization-in-blockchain/) +- [What is Decentralization in Blockchain?](https://www.blockchain-council.org/blockchain/what-is-decentralization-in-blockchain/) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/102-why-blockchain-matters.md b/src/roadmaps/blockchain/content/100-blockchain-basics/102-why-blockchain-matters.md index 6e11bd876..48f8e462f 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/102-why-blockchain-matters.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/102-why-blockchain-matters.md @@ -4,8 +4,7 @@ The nature of blockchain allows for trustless systems to be built on top of it. This decentralization enables use-cases that were previously impossible, such as parametric insurance, decentralized finance, and decentralized organizations (DAOs), among a few. This allows developers to build products that provide immediate value without having to go through a bureaucratic process of applications, approvals, and general red tape. -Free Content -Why Blockchain? -What Is The Blockchain And Why Does It Matter? -Web3/Crypto: Why Bother? -Why is Blockchain Important and Why Does it Matter +- [Why Blockchain?](https://www.blockchain.education/blockchain101/blockchain) +- [What Is The Blockchain And Why Does It Matter?](https://www.forbes.com/sites/theyec/2020/05/18/what-is-the-blockchain-and-why-does-it-matter/) +- [Web3/Crypto: Why Bother?](https://continuations.com/post/671863718643105792/web3crypto-why-bother) +- [Why is Blockchain Important and Why Does it Matter](https://www.simplilearn.com/tutorials/blockchain-tutorial/why-is-blockchain-important) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/103-blockchain-structure.md b/src/roadmaps/blockchain/content/100-blockchain-basics/103-blockchain-structure.md index affdd6419..867b13320 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/103-blockchain-structure.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/103-blockchain-structure.md @@ -4,8 +4,7 @@ The blockchain gets its name from its underlying structure. The blockchain is or Understanding blockchain security requires understanding how the blockchain is put together. This requires knowing what the blocks and chains of blockchain are and why they are designed the way that they are. -Free Content -Blockchain Architecture Basics: Components, Structure, Benefits & Creation -Blockchain Architecture 101: Components, Structure, and Benefits -Blockchain structure -Blockchain Basics | Coursera +- [Blockchain Architecture Basics: Components, Structure, Benefits & Creation](https://mlsdev.com/blog/156-how-to-build-your-own-blockchain-architecture) +- [Blockchain Architecture 101: Components, Structure, and Benefits](https://komodoplatform.com/en/academy/blockchain-architecture-101/) +- [Blockchain structure](https://resources.infosecinstitute.com/topic/blockchain-structure/) +- [Blockchain Basics | Coursera](https://www.coursera.org/lecture/blockchain-basics/blockchain-structure-5rj9Z) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/104-basic-blockchain-operations.md b/src/roadmaps/blockchain/content/100-blockchain-basics/104-basic-blockchain-operations.md index 4f3d0b9c8..dde1069d9 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/104-basic-blockchain-operations.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/104-basic-blockchain-operations.md @@ -2,8 +2,7 @@ Operations in a decentralized networks are the responsibility of the peer participants and their respective computational nodes. These are specific for each type of blockchain. -Free Content -Blockchain Basics: Structure, Operations, and the Bitcoin Blockchain -Bitcoin blockchain transactions | Bitcoin Developer -Ethereum blockchain transactions | ethereum.org -Blockchain Basics | Coursera +- [Blockchain Basics: Structure, Operations, and the Bitcoin Blockchain](https://www.mlq.ai/blockchain-basics/) +- [Bitcoin blockchain transactions | Bitcoin Developer](https://developer.bitcoin.org/reference/transactions.html) +- [Ethereum blockchain transactions | ethereum.org](https://ethereum.org/en/developers/docs/transactions/) +- [Blockchain Basics | Coursera](https://www.coursera.org/lecture/blockchain-basics/basic-operations-OxILB) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/105-applications-and-uses.md b/src/roadmaps/blockchain/content/100-blockchain-basics/105-applications-and-uses.md index cbdc1f8d3..5c71a3595 100644 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/105-applications-and-uses.md +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/105-applications-and-uses.md @@ -2,8 +2,7 @@ Blockchain applications go far beyond cryptocurrency and bitcoin. With its ability to create more transparency and fairness while also saving businesses time and money, the technology is impacting a variety of sectors in ways that range from how contracts are enforced to making government work more efficiently. -Free Content -Blockchain Use Cases and Applications by Industry -Top 10 Real-World Applications Of Blockchain Technology -Ethereum blockchain transactions | ethereum.org -E34 Blockchain Applications and Real-World Use Cases Disrupting the Status Quo +- [Blockchain Use Cases and Applications by Industry](https://consensys.net/blockchain-use-cases/) +- [Top 10 Real-World Applications Of Blockchain Technology](https://www.blockchain-council.org/blockchain/top-10-real-world-applications-of-blockchain-technology/) +- [Ethereum blockchain transactions | ethereum.org](https://ethereum.org/en/developers/docs/transactions/) +- [E34 Blockchain Applications and Real-World Use Cases Disrupting the Status Quo](https://builtin.com/blockchain/blockchain-applications) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/index.md b/src/roadmaps/blockchain/content/100-blockchain-basics/index.md new file mode 100644 index 000000000..792e9a682 --- /dev/null +++ b/src/roadmaps/blockchain/content/100-blockchain-basics/index.md @@ -0,0 +1,8 @@ +# Blockchain + +A blockchain is a decentralized, distributed, and oftentimes public, digital ledger consisting of records called blocks that is used to record transactions across many computers so that any involved block cannot be altered retroactively, without the alteration of all subsequent blocks. + +- [Introduction to Blockchain](https://www.blockchain.education/blockchain101/blockchain) +- [Blockchain Explained](https://www.investopedia.com/terms/b/blockchain.asp) +- [How does a blockchain work?](https://youtu.be/SSo_EIwHSd4) +- [What Is a Blockchain? | Blockchain Basics for Developers](https://youtu.be/4ff9esY_4aU) diff --git a/src/roadmaps/blockchain/content/100-blockchain-basics/readme.md b/src/roadmaps/blockchain/content/100-blockchain-basics/readme.md deleted file mode 100644 index 59d93b9dc..000000000 --- a/src/roadmaps/blockchain/content/100-blockchain-basics/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Blockchain - -A blockchain is a decentralized, distributed, and oftentimes public, digital ledger consisting of records called blocks that is used to record transactions across many computers so that any involved block cannot be altered retroactively, without the alteration of all subsequent blocks. - -Free Content -Introduction to Blockchain -Blockchain Explained -How does a blockchain work? -What Is a Blockchain? | Blockchain Basics for Developers diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/100-storage.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/100-storage.md index 5760d28d3..75c1c7119 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/100-storage.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/100-storage.md @@ -2,7 +2,6 @@ Unlike a centralized server operated by a single company or organization, decentralized storage systems consist of a peer-to-peer network of user-operators who hold a portion of the overall data, creating a resilient file storage sharing system. -Free Content -Blockchain Storage -Decentralized Storage -How IPFS works +- [Blockchain Storage](https://www.techtarget.com/searchstorage/definition/blockchain-storage) +- [Decentralized Storage](https://ethereum.org/en/developers/docs/storage/) +- [How IPFS works](https://docs.ipfs.tech/concepts/how-ipfs-works/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/101-mining-and-incentive-models.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/101-mining-and-incentive-models.md index 656aa6279..d4be2eac5 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/101-mining-and-incentive-models.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/101-mining-and-incentive-models.md @@ -4,7 +4,6 @@ Mining is the process of adding transaction details to the Blockchain, like send An Incentive is basically a reward given to a Blockchain Miner for speeding up the transactions and making correct decisions while processing the complete transaction securely. -Free Content -Blockchain Incentives to Miners -Ethereum Consensus Mechanisms -Solana Staking Rewards +- [Blockchain Incentives to Miners](https://www.geeksforgeeks.org/blockchain-incentives-to-miners/) +- [Ethereum Consensus Mechanisms](https://ethereum.org/en/developers/docs/consensus-mechanisms/) +- [Solana Staking Rewards](https://docs.solana.com/implemented-proposals/staking-rewards) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/102-decentralization-vs-trust.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/102-decentralization-vs-trust.md index c3a438816..4c2e9b930 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/102-decentralization-vs-trust.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/102-decentralization-vs-trust.md @@ -2,7 +2,6 @@ Blockchains, cryptocurrency, smart contracts, and oracles have emerged as new technologies for coordinating social and economic activities in a more secure, transparent, and accessible manner. Most importantly, these technologies are revealing the power of cryptographic guarantees—what we often call cryptographic truth—in restoring users’ trust in everyday interactions. -Free Content -What Crypto Is Really About -Ethereum Consensus Mechanisms -The Superiority of Cryptographic Truth \ No newline at end of file +- [What Crypto Is Really About](https://blog.chain.link/what-crypto-is-really-about/) +- [Ethereum Consensus Mechanisms](https://ethereum.org/en/developers/docs/consensus-mechanisms/) +- [The Superiority of Cryptographic Truth](https://youtu.be/AEtBPbmIRKQ) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/103-blockchain-forking.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/103-blockchain-forking.md index 495389055..881c69227 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/103-blockchain-forking.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/103-blockchain-forking.md @@ -2,7 +2,6 @@ A fork happens whenever a community makes a change to the blockchain’s protocol, or basic set of rules. -Free Content -Blockchain Fork -What is a fork? -What Is a Hard Fork? +- [Blockchain Fork](https://en.wikipedia.org/wiki/Fork_(blockchain)) +- [What is a fork?](https://www.coinbase.com/learn/crypto-basics/what-is-a-fork) +- [What Is a Hard Fork?](https://www.investopedia.com/terms/h/hard-fork.asp) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/104-cryptocurrencies.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/104-cryptocurrencies.md index f23996ace..02437a7bb 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/104-cryptocurrencies.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/104-cryptocurrencies.md @@ -2,7 +2,6 @@ A cryptocurrency, crypto-currency, or crypto is a digital currency designed to work as a medium of exchange through a blockchain, which is not reliant on any central authority, such as a government or bank, to uphold or maintain it. -Free Content -What Is Cryptocurrency? -Cryptocurrency: What It Is and How It Works -How Cryptocurrency actually works. \ No newline at end of file +- [What Is Cryptocurrency?](https://www.investopedia.com/terms/c/cryptocurrency.asp) +- [Cryptocurrency: What It Is and How It Works](https://www.nerdwallet.com/article/investing/cryptocurrency) +- [How Cryptocurrency actually works.](https://youtu.be/rYQgy8QDEBI) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/105-cryptowallets.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/105-cryptowallets.md index 27d17e032..96aea6de3 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/105-cryptowallets.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/105-cryptowallets.md @@ -2,6 +2,5 @@ A cryptocurrency wallet is an application that functions as a wallet for your cryptocurrency. -Free Content -What is a Cryptocurrency Wallet? -What is a Crypto Wallet? A Beginner’s Guide +- [What is a Cryptocurrency Wallet?](https://www.investopedia.com/terms/b/bitcoin-wallet.asp) +- [What is a Crypto Wallet? A Beginner’s Guide](https://crypto.com/university/crypto-wallets) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/106-cryptography.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/106-cryptography.md index 62ba797b0..025140b6d 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/106-cryptography.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/106-cryptography.md @@ -2,9 +2,8 @@ Cryptography, or cryptology, is the practice and study of techniques for secure communication in the presence of adversarial behavior. -Free Content -Cryptography -What is Cryptography -Asymmetric Encryption - Simply explained -What is Cryptography? -Learn Cryptography +- [Cryptography](https://en.wikipedia.org/wiki/Cryptography) +- [What is Cryptography](https://www.synopsys.com/glossary/what-is-cryptography.html) +- [Asymmetric Encryption - Simply explained](https://youtu.be/AQDCe585Lnc) +- [What is Cryptography?](https://www.youtube.com/watch?v=6_Cxj5WKpIw) +- [Learn Cryptography](https://www.youtube.com/watch?v=trHox1bN5es) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/107-consensus-protocols.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/107-consensus-protocols.md index c9bb086cf..c0432d248 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/107-consensus-protocols.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/107-consensus-protocols.md @@ -2,7 +2,6 @@ Consensus for blockchain is a procedure in which the peers of a Blockchain network reach agreement about the present state of the data in the network. Through this, consensus algorithms establish reliability and trust in the Blockchain network. -Free Content -Consensus Mechanisms in Blockchain: A Beginner’s Guide -Consensus Mechanisms -What Is a Consensus Mechanism? +- [Consensus Mechanisms in Blockchain: A Beginner’s Guide](https://crypto.com/university/consensus-mechanisms-in-blockchain) +- [Consensus Mechanisms](https://ethereum.org/en/developers/docs/consensus-mechanisms/) +- [What Is a Consensus Mechanism?](https://www.coindesk.com/learn/what-is-a-consensus-mechanism/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/108-blockchain-interoperability.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/108-blockchain-interoperability.md index 22a312af1..29be1c224 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/108-blockchain-interoperability.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/108-blockchain-interoperability.md @@ -2,7 +2,6 @@ The concept of “blockchain interoperability” refers to the ability of different blockchain networks to exchange and leverage data between one another and to move unique types of digital assets between the networks’ respective blockchains. -Free Content -Cross-Chain Interoperability: What it Means for Blockchain -Blockchain Interoperability : Why Is Cross Chain Technology Important? -Blockchain Interoperability – Understanding Cross-Chain Technology +- [Cross-Chain Interoperability: What it Means for Blockchain](https://www.gemini.com/cryptopedia/why-is-interoperability-important-for-blockchain) +- [Blockchain Interoperability : Why Is Cross Chain Technology Important?](https://101blockchains.com/blockchain-interoperability/) +- [Blockchain Interoperability – Understanding Cross-Chain Technology](https://www.blockchain-council.org/blockchain/blockchain-interoperability/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/100-solana.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/100-solana.md index aa6a72fe7..3660b0ed4 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/100-solana.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/100-solana.md @@ -2,9 +2,8 @@ Solana is a public blockchain platform with smart contract functionality. Its native cryptocurrency is SOL. -Free Content -What is Solana, and how does it work? -Beginner's Guide To Solana -Solana Introduction -Solana Architecture -Start Building Solana! +- [What is Solana, and how does it work?](https://cointelegraph.com/news/what-is-solana-and-how-does-it-work) +- [Beginners Guide To Solana](https://solana.com/news/getting-started-with-solana-development) +- [Solana Introduction](https://docs.solana.com/introduction) +- [Solana Architecture](https://docs.solana.com/cluster/overview) +- [Start Building Solana!](https://beta.solpg.io/?utm_source=solana.com) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/101-ton.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/101-ton.md index 5b2c6ba25..10a92ffed 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/101-ton.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/101-ton.md @@ -2,8 +2,7 @@ TON is a fully decentralized layer-1 blockchain designed by Telegram to onboard billions of users. It boasts ultra-fast transactions, tiny fees, easy-to-use apps, and is environmentally friendly. -Free Content -TON Telegram integration highlights synergy of blockchain community -Start building on The Open Network -TON Introduction -Blockchain analysis \ No newline at end of file +- [TON Telegram integration highlights synergy of blockchain community](https://cointelegraph.com/news/ton-telegram-integration-highlights-synergy-of-blockchain-community) +- [Start building on The Open Network](https://ton.org/dev) +- [TON Introduction](https://ton.org/docs/learn/introduction) +- [Blockchain analysis](https://ton.org/analysis) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/avalanche.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/avalanche.md index fbfcb5bf3..38cb2c5b4 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/avalanche.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/avalanche.md @@ -2,6 +2,5 @@ Avalanche describes itself as an “open, programmable smart contracts platform for decentralized applications.” What does that mean? Like many other decentralized protocols, Avalanche has its own token called AVAX, which is used to pay transaction fees and can be staked to secure the network. -Free Content -Avalanche whitepaper -Avalanche official website +- [Avalanche whitepaper](https://assets.website-files.com/5d80307810123f5ffbb34d6e/6008d7bbf8b10d1eb01e7e16_Avalanche%20Platform%20Whitepaper.pdf) +- [Avalanche official website](https://www.avax.network/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/binance-smart-chain.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/binance-smart-chain.md index 1352652e1..0ee61fa82 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/binance-smart-chain.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/binance-smart-chain.md @@ -2,6 +2,5 @@ Binance Smart Chain (also known as BNB Chain) is a blockchain project initiated by Binance as a central piece of their cryptocurrency exchange, which is the largest exchange in the world in terms of daily trading volume of cryptocurrencies. -Free Content -Binance whitepaper -BNB Chain overview +- [Binance whitepaper](https://www.exodus.com/assets/docs/binance-coin-whitepaper.pdf) +- [BNB Chain overview](https://www.binance.com/en/blog/all/bnb-chain-blockchain-for-exchanging-the-world-304219301536473088) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/ethereum.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/ethereum.md index 5de122ef7..7849471d2 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/ethereum.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/ethereum.md @@ -4,7 +4,6 @@ Ethereum is a programmable blockchain platform with the capacity to support smar The Ethereum platform launched in 2015, and it’s now the second largest form of crypto next to Bitcoin (BTC). -Free Content -Ethereum whitepaper -Intro to Ethereum -A gentle introduction to Ethereum +- [Ethereum whitepaper](https://ethereum.org/en/whitepaper/) +- [Intro to Ethereum](https://ethereum.org/en/developers/docs/intro-to-ethereum/) +- [A gentle introduction to Ethereum](https://bitsonblocks.net/2016/10/02/gentle-introduction-ethereum/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/fantom.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/fantom.md index a547a7701..6f5b1aff6 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/fantom.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/fantom.md @@ -2,6 +2,5 @@ Fantom is a decentralized, open-source smart contract platform that supports decentralized applications (dApps) and digital assets. It's one of many blockchain networks built as a faster, more efficient alternative to Ethereum, it uses the proof-of-stake consensus mechanism. -Free Content -Fantom whitepaper -Fantom overview +- [Fantom whitepaper](https://arxiv.org/pdf/1810.10360.pdf) +- [Fantom overview](https://docs.fantom.foundation/ ) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/gnosis-chain.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/gnosis-chain.md index c1e1ef49b..ffdb73455 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/gnosis-chain.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/gnosis-chain.md @@ -2,6 +2,5 @@ Gnosis is a blockchain based on Ethereum, which changed the consensus model to PoS to solve major issues on the Ethereum mainnet. While the platform solves problems surrounding transaction fees and speed, it also means that the Gnosis chain is less decentralized, as it is somewhat reliant on the Ethereum chain. -Free Content -Gnosis whitepaper -Gnosis overview +- [Gnosis whitepaper](https://blockchainlab.com/pdf/gnosis_whitepaper.pdf) +- [Gnosis overview](https://developers.gnosischain.com/#gnosis-chain) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/huobi-eco-chain.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/huobi-eco-chain.md index 2d4b39913..bfe97c27a 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/huobi-eco-chain.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/huobi-eco-chain.md @@ -2,6 +2,5 @@ Huobi's ECO Chain (also known as HECO) is a public blockchain that provides developers with a low-cost onchain environment for running decentralized apps (dApps) of smart contracts and storing digital assets. -Free Content -Huobi Eco Chain whitepaper -Introduction to HECO Chain +- [Huobi Eco Chain whitepaper](https://www.hecochain.com/developer.133bd45.pdf) +- [Introduction to HECO Chain](https://docs.hecochain.com/#/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/readme.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/index.md similarity index 70% rename from src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/readme.md rename to src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/index.md index 8f33619d5..887a2233d 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/readme.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/index.md @@ -4,5 +4,4 @@ The Ethereum Virtual Machine (EVM) is a dedicated software virtual stack that ex Many blockchains have forked the Ethereum blockchain and added functionality on top, these blockchains are referred to as EVM-based blockchains. -Free Content -What is Ethereum Virtual Machine? +- [What is Ethereum Virtual Machine?](https://moralis.io/evm-explained-what-is-ethereum-virtual-machine/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/moonbeam-moonriver.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/moonbeam-moonriver.md index 21c2965e0..2073dc6e9 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/moonbeam-moonriver.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/moonbeam-moonriver.md @@ -4,6 +4,5 @@ Moonbeam is a Polkadot network parachain that promises cross-chain interoperabil Moonriver is an incentivized testnet. It enables developers to create, test, and adjust their protocols prior to launching on Moonbeam. Moonbeam is the mainnet of the ecosystem. -Free Content -About Moonbream -Moonbeam Vision +- [About Moonbream](https://docs.moonbeam.network/learn/platform/networks/moonbeam/) +- [Moonbeam Vision](https://docs.moonbeam.network/learn/platform/vision/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/polygon.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/polygon.md index 9fc979f60..a36ae8b8a 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/polygon.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/102-evm-based/polygon.md @@ -2,6 +2,5 @@ Polygon, formerly known as the Matic Network, is a scaling solution that aims to provide multiple tools to improve the speed and reduce the cost and complexities of transactions on the Ethereum blockchain. -Free Content -Polygon whitepaper -Introduction to Polygon +- [Polygon whitepaper](https://polygon.technology/lightpaper-polygon.pdf) +- [Introduction to Polygon](https://wiki.polygon.technology/docs/develop/getting-started) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/arbitrum.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/arbitrum.md index 10d7167ab..20d13b2ba 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/arbitrum.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/arbitrum.md @@ -2,6 +2,5 @@ Arbitrum aims to reduce transaction fees and congestion by moving as much computation and data storage off of Ethereum's main blockchain (layer 1) as it can. Storing data off of Ethereum's blockchain is known as Layer 2 scaling solutions. -Free Content -Arbitrum whitepaper -Inside Arbitrum +- [Arbitrum whitepaper](https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-kalodner.pdf) +- [Inside Arbitrum](https://developer.offchainlabs.com/docs/Inside_Arbitrum) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/readme.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/index.md similarity index 52% rename from src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/readme.md rename to src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/index.md index 3f252489b..e66198b51 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/readme.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/index.md @@ -4,6 +4,5 @@ Layer-2 refers to a network or technology that operates on top of an underlying This category of scaling solutions entails shifting a portion of Ethereum's transactional burden to an adjacent system architecture, which then handles the brunt of the network’s processing and only subsequently reports back to Ethereum to finalize its results. -Free Content -Layer-1 and Layer-2 Blockchain Scaling Solutions -Layer 2 - Binance Academy +- [Layer-1 and Layer-2 Blockchain Scaling Solutions](https://www.gemini.com/cryptopedia/blockchain-layer-2-network-layer-1-network) +- [Layer 2 - Binance Academy](https://academy.binance.com/en/glossary/layer-2) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/moonbeam-moonriver.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/moonbeam-moonriver.md index 8ec467e0d..a41880a61 100644 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/moonbeam-moonriver.md +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/103-l2-blockchains/moonbeam-moonriver.md @@ -4,6 +4,5 @@ Moonbeam is a Polkadot network parachain that promises cross-chain interoperabil Moonriver is an incentivized testnet. It enables developers to create, test, and adjust their protocols prior to launching on Moonbeam. Moonbeam is the mainnet of the ecosystem. -Free Content -About Moonbeam -Moonbeam Vision +- [About Moonbeam](https://docs.moonbeam.network/learn/platform/networks/moonbeam/) +- [Moonbeam Vision](https://docs.moonbeam.network/learn/platform/vision/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/index.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/index.md new file mode 100644 index 000000000..ada27f7e0 --- /dev/null +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/index.md @@ -0,0 +1,6 @@ +# Blockchains + +Blockchain systems vary considerably in their design, particularly with regard to the consensus mechanisms used to perform the essential task of verifying network data. + +- [Types of Blockchains: PoW, PoS, and Private](https://www.gemini.com/cryptopedia/blockchain-types-pow-pos-private) +- [Types of Blockchain](https://www.geeksforgeeks.org/types-of-blockchain/) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/readme.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/readme.md deleted file mode 100644 index b8f5a7eaf..000000000 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/109-blockchains/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Blockchains - -Blockchain systems vary considerably in their design, particularly with regard to the consensus mechanisms used to perform the essential task of verifying network data. - -Free Content -Types of Blockchains: PoW, PoS, and Private -Types of Blockchain diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/index.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/index.md new file mode 100644 index 000000000..3312548b4 --- /dev/null +++ b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/index.md @@ -0,0 +1,4 @@ +# Blockchain general knowledge + +- [The Complete Course On Understanding Blockchain Technology](https://www.udemy.com/course/understanding-blockchain-technology/) +- [Blockchain Technology Explained](https://youtu.be/qOVAbKKSH10) diff --git a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/readme.md b/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/readme.md deleted file mode 100644 index e98426e61..000000000 --- a/src/roadmaps/blockchain/content/101-blockchain-general-knowledge/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# Blockchain general knowledge - -Free Content -The Complete Course On Understanding Blockchain Technology -Blockchain Technology Explained diff --git a/src/roadmaps/blockchain/content/102-blockchain-oracles/100-hybrid-smart-contracts.md b/src/roadmaps/blockchain/content/102-blockchain-oracles/100-hybrid-smart-contracts.md index 54b5f1820..b7a05399c 100644 --- a/src/roadmaps/blockchain/content/102-blockchain-oracles/100-hybrid-smart-contracts.md +++ b/src/roadmaps/blockchain/content/102-blockchain-oracles/100-hybrid-smart-contracts.md @@ -2,6 +2,5 @@ Hybrid smart contracts combine code running on the blockchain (on-chain) with data and computation from outside the blockchain (off-chain) provided by Decentralized Oracle Networks. -Free Content -Hybrid Smart Contracts Explained -A complete guide to understand hybrid smart contracts +- [Hybrid Smart Contracts Explained](https://blog.chain.link/hybrid-smart-contracts-explained/) +- [A complete guide to understand hybrid smart contracts](https://www.leewayhertz.com/hybrid-smart-contracts/) diff --git a/src/roadmaps/blockchain/content/102-blockchain-oracles/101-chainlink.md b/src/roadmaps/blockchain/content/102-blockchain-oracles/101-chainlink.md index b94066fe7..f4c302060 100644 --- a/src/roadmaps/blockchain/content/102-blockchain-oracles/101-chainlink.md +++ b/src/roadmaps/blockchain/content/102-blockchain-oracles/101-chainlink.md @@ -2,6 +2,5 @@ Chainlink is a decentralized network of oracles that enables smart contracts to securely interact with real-world data and services that exist outside of blockchain networks. -Free Content -What Is Chainlink? A Beginner’s Guide -What Is Chainlink in 5 Minutes +- [What Is Chainlink? A Beginner’s Guide](https://blog.chain.link/what-is-chainlink/) +- [What Is Chainlink in 5 Minutes](https://www.gemini.com/cryptopedia/what-is-chainlink-and-how-does-it-work) diff --git a/src/roadmaps/blockchain/content/102-blockchain-oracles/102-oracle-networks.md b/src/roadmaps/blockchain/content/102-blockchain-oracles/102-oracle-networks.md index 331319112..765c3505f 100644 --- a/src/roadmaps/blockchain/content/102-blockchain-oracles/102-oracle-networks.md +++ b/src/roadmaps/blockchain/content/102-blockchain-oracles/102-oracle-networks.md @@ -2,7 +2,6 @@ By leveraging many different data sources, and implementing an oracle system that isn’t controlled by a single entity, decentralized oracle networks provide an increased level of security and fairness to smart contracts. -Free Content -Decentralized Oracle Networks -A Beginner’s Guide To The Evolution Of Decentralized Oracle Networks -Understanding Oracle Networks +- [Decentralized Oracle Networks](https://medium.com/coinmonks/decentralized-oracle-networks-9fead28f5fe5) +- [A Beginner’s Guide To The Evolution Of Decentralized Oracle Networks](https://chainlinktoday.com/a-beginners-guide-to-the-evolution-of-decentralized-oracle-networks/) +- [Understanding Oracle Networks](https://coinmetro.com/blog/understanding-oracle-networks/) diff --git a/src/roadmaps/blockchain/content/102-blockchain-oracles/index.md b/src/roadmaps/blockchain/content/102-blockchain-oracles/index.md new file mode 100644 index 000000000..178a0b733 --- /dev/null +++ b/src/roadmaps/blockchain/content/102-blockchain-oracles/index.md @@ -0,0 +1,6 @@ +# Blockchain Oracles + +A blockchain oracle is a third-party service that connects smart contracts with the outside world, primarily to feed information in from the world, but also the reverse. Information from the world encapsulates multiple sources so that decentralised knowledge is obtained. + +- [Blockchain Oracle](https://en.wikipedia.org/wiki/Blockchain_oracle) +- [What Is a Blockchain Oracle?](https://chain.link/education/blockchain-oracles) diff --git a/src/roadmaps/blockchain/content/102-blockchain-oracles/readme.md b/src/roadmaps/blockchain/content/102-blockchain-oracles/readme.md deleted file mode 100644 index a0fd27543..000000000 --- a/src/roadmaps/blockchain/content/102-blockchain-oracles/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Blockchain Oracles - -A blockchain oracle is a third-party service that connects smart contracts with the outside world, primarily to feed information in from the world, but also the reverse. Information from the world encapsulates multiple sources so that decentralised knowledge is obtained. - -Free Content -Blockchain Oracle -What Is a Blockchain Oracle? diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/100-solidity.md b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/100-solidity.md index e7e9aaa74..81c865931 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/100-solidity.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/100-solidity.md @@ -7,9 +7,8 @@ Solidity is an object-oriented programming language created specifically by Ethe Like any other programming languages, Solidity also has variables, functions, classes, arithmetic operations, string manipulation, and many more. -Free Content -Solidity Programming Language -Solidity Tutorial -Solidity Course by FreeCodeCamp -Solidity Course by Dapp University -Learn Blockchain, Solidity, and Full Stack Web3 Development +- [Solidity Programming Language](https://soliditylang.org/) +- [Solidity Tutorial](https://www.tutorialspoint.com/solidity/index.htm) +- [Solidity Course by FreeCodeCamp](https://www.youtube.com/watch?v=ipwxYa-F1uY) +- [Solidity Course by Dapp University](https://www.youtube.com/watch?v=EhPeHeoKF88) +- [Learn Blockchain, Solidity, and Full Stack Web3 Development](https://youtu.be/gyMwXuJrbJQ) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/101-vyper.md b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/101-vyper.md index a73458c1e..89b3f2e42 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/101-vyper.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/101-vyper.md @@ -2,6 +2,5 @@ Vyper is a contract-oriented, pythonic programming language that targets the Ethereum Virtual Machine (EVM). -Free Content -Vyper Programming Language -Learn Vyper in Y Minutes \ No newline at end of file +- [Vyper Programming Language](https://vyper.readthedocs.io/en/stable/) +- [Learn Vyper in Y Minutes](https://learnxinyminutes.com/docs/vyper/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/102-rust.md b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/102-rust.md index 56697a0d7..171952c4a 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/102-rust.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/102-rust.md @@ -2,6 +2,5 @@ Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency. It is popular on smart contract chains Solana and Polkadot. -Free Content -Rust Programming Language -How to write and deploy a smart contract in Rust \ No newline at end of file +- [Rust Programming Language](https://www.rust-lang.org/) +- [How to write and deploy a smart contract in Rust](https://learn.figment.io/tutorials/write-and-deploy-a-smart-contract-on-near) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/readme.md b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/index.md similarity index 50% rename from src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/readme.md rename to src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/index.md index b2a96bea0..7b1de9e29 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/readme.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/100-programming-languages/index.md @@ -2,5 +2,4 @@ Smart contracts can be programmed using relatively developer-friendly languages. If you're experienced with Python or any curly-bracket language, you can find a language with familiar syntax. -Free Content -Smart Contract Languages \ No newline at end of file +- [Smart Contract Languages](https://ethereum.org/en/developers/docs/smart-contracts/languages/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/100-unit-tests.md b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/100-unit-tests.md index 13b304dfb..2fb04ee33 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/100-unit-tests.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/100-unit-tests.md @@ -2,6 +2,5 @@ Unit testing involves testing individual components in a smart contract for correctness. A unit test is simple, quick to run, and provides a clear idea of what went wrong if the test fails. -Free Content -Smart Contracts Unit Testing -Tips for Unit Testing Ethereum Smart Contracts in Solidity +- [Smart Contracts Unit Testing](https://ethereum.org/en/developers/docs/smart-contracts/testing/#unit-testing) +- [Tips for Unit Testing Ethereum Smart Contracts in Solidity](https://betterprogramming.pub/a-few-tips-for-unit-testing-ethereum-smart-contract-in-solidity-d804062068fb) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/101-integration-tests.md b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/101-integration-tests.md index eecc10cc6..2de1ad976 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/101-integration-tests.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/101-integration-tests.md @@ -2,5 +2,4 @@ Integration tests validate interactions between multiple components. For smart contract testing this can mean interactions between different components of a single contract, or across multiple contracts. -Free Content -Unit tests vs integration tests | Smart contract testing course +- [Unit tests vs integration tests | Smart contract testing course](https://youtu.be/GxnX9k8i0zM) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/102-code-coverage.md b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/102-code-coverage.md index 1d0e94670..b8a1d5610 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/102-code-coverage.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/102-code-coverage.md @@ -2,6 +2,5 @@ Code coverage is a metric that can help you understand how much of your source is tested. It's a very useful metric that can help you assess the quality of your test suite. -Free Content -Testing Smart Contracts -Smart Contract Code Coverage In Hardhat +- [Testing Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/testing/) +- [Smart Contract Code Coverage In Hardhat](https://medium.com/coinmonks/smart-contract-code-coverage-in-hardhat-d4a5ff6c9ba6) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/index.md b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/index.md new file mode 100644 index 000000000..aa4a48c79 --- /dev/null +++ b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/index.md @@ -0,0 +1,7 @@ +# Testing + +Testing smart contracts is one of the most important measures for improving smart contract security. Unlike traditional software, smart contracts cannot typically be updated after launching, making it imperative to test rigorously before deploying contracts onto mainnet. + +- [Testing Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/testing/) +- [How to Test Ethereum Smart Contracts](https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d) +- [Writing automated smart contract tests](https://docs.openzeppelin.com/learn/writing-automated-tests) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/readme.md b/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/readme.md deleted file mode 100644 index 3290cc368..000000000 --- a/src/roadmaps/blockchain/content/103-smart-contracts/101-testing/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Testing - -Testing smart contracts is one of the most important measures for improving smart contract security. Unlike traditional software, smart contracts cannot typically be updated after launching, making it imperative to test rigorously before deploying contracts onto mainnet. - -Free Content -Testing Smart Contracts -How to Test Ethereum Smart Contracts -Writing automated smart contract tests \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/102-deployment.md b/src/roadmaps/blockchain/content/103-smart-contracts/102-deployment.md index a1b4cc485..46a2c3ed0 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/102-deployment.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/102-deployment.md @@ -2,6 +2,5 @@ Unlike other software, smart contracts don’t run on a local computer or a remote server: they live on the blockchain. Thus, interacting with them is different from more traditional applications. -Free Content -Deploying Smart Contracts -Deploying and interacting with smart contracts +- [Deploying Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/deploying/) +- [Deploying and interacting with smart contracts](https://docs.openzeppelin.com/learn/deploying-and-interacting) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/103-monitoring.md b/src/roadmaps/blockchain/content/103-smart-contracts/103-monitoring.md index 28bd3744f..a21170c94 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/103-monitoring.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/103-monitoring.md @@ -2,5 +2,4 @@ Monitoring smart contracts allow their authors to view its activity and interactions based on generated transactions and events, allowing verification of the contract's intended purpose and functionality. -Free Content -Monitoring Smart Contracts +- [Monitoring Smart Contracts](https://consensys.github.io/smart-contract-best-practices/development-recommendations/solidity-specific/event-monitoring/) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/104-upgrades.md b/src/roadmaps/blockchain/content/103-smart-contracts/104-upgrades.md index 42d3dd764..634f23c99 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/104-upgrades.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/104-upgrades.md @@ -2,8 +2,7 @@ Smart contracts are immutable by default. Once they are created there is no way to alter them, effectively acting as an unbreakable contract among participants. However, for some scenarios, it is desirable to be able to modify them. -Free Content -Upgrading Ethereum contracts -Upgrading smart contracts -What are Upgradable Smart Contracts? Full Guide -Upgrading your Smart Contracts | A Tutorial & Introduction +- [Upgrading Ethereum contracts](https://ethereum.org/en/developers/docs/smart-contracts/upgrading/) +- [Upgrading smart contracts](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) +- [What are Upgradable Smart Contracts? Full Guide](https://moralis.io/what-are-upgradable-smart-contracts-full-guide/) +- [Upgrading your Smart Contracts | A Tutorial & Introduction](https://youtu.be/bdXJmWajZRY) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/105-erc-tokens.md b/src/roadmaps/blockchain/content/103-smart-contracts/105-erc-tokens.md index 0365ede79..09e303f9d 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/105-erc-tokens.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/105-erc-tokens.md @@ -4,8 +4,7 @@ An ‘Ethereum Request for Comments’ (ERC) is a document that programmers use While there are several Ethereum standards. These ERC Ethereum standards are the most well-known and popular: ERC-20, ERC-721, ERC-1155, and ERC-777. -Free Content -What are Ethereum request for comments (ERC) Standards -ERC-20 Token Standard -ERC-721 Token Standard (NFT's) -ERC-1155 Token Standard (Multi-Token) +- [What are Ethereum request for comments (ERC) Standards](https://dev.to/envoy_/ks-what-are-ethereum-request-for-comments-erc-standards-5f80) +- [ERC-20 Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) +- [ERC-721 Token Standard (NFTs)](https://decrypt.co/resources/erc-721-ethereum-nft-token-standard) +- [ERC-1155 Token Standard (Multi-Token)](https://decrypt.co/resources/what-is-erc-1155-ethereums-flexible-token-standard) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/106-crypto-wallets.md b/src/roadmaps/blockchain/content/103-smart-contracts/106-crypto-wallets.md index f4cfba804..3fdd126bf 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/106-crypto-wallets.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/106-crypto-wallets.md @@ -2,6 +2,5 @@ A cryptocurrency wallet is a device, physical medium, program, or service which stores the public and/or private keys for cryptocurrency transactions. In addition to this basic function of storing the keys, a cryptocurrency wallet more often also offers the functionality of encrypting and/or signing information. -Free Content -What is a crypto wallet? -What is a Crypto Wallet? A Beginner’s Guide +- [What is a crypto wallet?](https://www.coinbase.com/learn/crypto-basics/what-is-a-crypto-wallet) +- [What is a Crypto Wallet? A Beginner’s Guide](https://crypto.com/university/crypto-wallets) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/107-ides.md b/src/roadmaps/blockchain/content/103-smart-contracts/107-ides.md index 19a43eb18..4c1343f5f 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/107-ides.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/107-ides.md @@ -2,6 +2,5 @@ An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger. -Free Content -Integrated Development Environments -Remix - Ethereum IDE & community +- [Integrated Development Environments](https://ethereum.org/en/developers/docs/ides/) +- [Remix - Ethereum IDE & community](https://remix-project.org/) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/108-crypto-faucets.md b/src/roadmaps/blockchain/content/103-smart-contracts/108-crypto-faucets.md index 1809f5cf5..8cafc89ce 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/108-crypto-faucets.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/108-crypto-faucets.md @@ -4,6 +4,5 @@ A crypto faucet lets users earn small crypto rewards by completing simple tasks. Faucets are common in development environments where developers obtain testnet crypto in order develop and test their application prior to mainnet deployment. -Free Content -What Is A Crypto Faucet? -What are crypto faucets and how do they work? +- [What Is A Crypto Faucet?](https://academy.binance.com/en/articles/what-is-a-crypto-faucet) +- [What are crypto faucets and how do they work?](https://cointelegraph.com/news/what-are-crypto-faucets-and-how-do-they-work) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/109-decentralized-storage.md b/src/roadmaps/blockchain/content/103-smart-contracts/109-decentralized-storage.md index 35765989c..8dca70e35 100644 --- a/src/roadmaps/blockchain/content/103-smart-contracts/109-decentralized-storage.md +++ b/src/roadmaps/blockchain/content/103-smart-contracts/109-decentralized-storage.md @@ -2,6 +2,5 @@ Decentralized storage is where data is stored on a decentralized network across multiple locations by users or groups who are incentivized to join, store, and keep data accessible. The servers used are hosted by people, rather than a single company. Anyone is free to join, they are kept honest due to smart contracts, and they are incentivized to participate via tokens. -Free Content -What Is Decentralized Storage? -Decentralized Storage +- [What Is Decentralized Storage?](https://medium.com/@ppio/what-is-decentralized-storage-9c4b761942e2) +- [Decentralized Storage](https://ethereum.org/en/developers/docs/storage/) diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/index.md b/src/roadmaps/blockchain/content/103-smart-contracts/index.md new file mode 100644 index 000000000..5d171ae56 --- /dev/null +++ b/src/roadmaps/blockchain/content/103-smart-contracts/index.md @@ -0,0 +1,7 @@ +# Smart Contracts + +A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document legally relevant events and actions according to the terms of a contract or an agreement. + +- [Smart Contracts Introduction](https://www.blockchain.education/blockchain101/smart-contracts) +- [What Is a Smart Contract?](https://chain.link/education/smart-contracts) +- [Smart contracts - Simply Explained](https://youtu.be/ZE2HxTmxfrI) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/103-smart-contracts/readme.md b/src/roadmaps/blockchain/content/103-smart-contracts/readme.md deleted file mode 100644 index 60f4dadaf..000000000 --- a/src/roadmaps/blockchain/content/103-smart-contracts/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Smart Contracts - -A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document legally relevant events and actions according to the terms of a contract or an agreement. - -Free Content -Smart Contracts Introduction -What Is a Smart Contract? -Smart contracts - Simply Explained \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/100-hardhat.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/100-hardhat.md index 1933a20cb..348bc0cc5 100644 --- a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/100-hardhat.md +++ b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/100-hardhat.md @@ -2,6 +2,5 @@ Hardhat is an Ethereum development environment. It allows users to compile contracts and run them on a development network. Get Solidity stack traces, console.log and more. -Free Content -Hardhat Overview -Build and Deploy Smart Contracts using Hardhat \ No newline at end of file +- [Hardhat Overview](https://hardhat.org/hardhat-runner/docs/getting-started#overview) +- [Build and Deploy Smart Contracts using Hardhat](https://youtu.be/GBc3lBrXEBo) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/101-brownie.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/101-brownie.md index d21bfa4f9..059451ae6 100644 --- a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/101-brownie.md +++ b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/101-brownie.md @@ -2,6 +2,5 @@ Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. -Free Content -Brownie Overview -Python and Blockchain: Deploy Smart Contracts using Brownie +- [Brownie Overview](https://eth-brownie.readthedocs.io/) +- [Python and Blockchain: Deploy Smart Contracts using Brownie](https://youtu.be/QfFO22lwSw4) diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/102-truffle.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/102-truffle.md index abc7c6111..70af769a4 100644 --- a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/102-truffle.md +++ b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/102-truffle.md @@ -2,6 +2,5 @@ A development environment, testing framework, and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier. -Free Content -Truffle Overview -Truffle Tutorial for Beginners | Compile, Test & Deploy Smart contracts to any EVM Blockchain +- [Truffle Overview](https://trufflesuite.com/docs/truffle/) +- [Truffle Tutorial for Beginners | Compile, Test & Deploy Smart contracts to any EVM Blockchain](https://youtu.be/62f757RVEvU) diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/103-foundry.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/103-foundry.md index 827ceb14a..f2ebf3832 100644 --- a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/103-foundry.md +++ b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/103-foundry.md @@ -2,7 +2,6 @@ Foundry is a smart contract development toolchain. Foundry manages your dependencies, compiles your project, runs tests, deploys, and lets you interact with the chain from the command-line and via Solidity scripts. -Free Content -Foundry Overview -Intro to Foundry +- [Foundry Overview](https://book.getfoundry.sh/) +- [Intro to Foundry](https://youtu.be/fNMfMxGxeag) diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/index.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/index.md new file mode 100644 index 000000000..f53bab60e --- /dev/null +++ b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/index.md @@ -0,0 +1,7 @@ +# Smart Contract Frameworks + +Building a full-fledged dapp requires different pieces of technology. Software frameworks include many of the needed features or provide easy plugin systems to pick the tools you desire. + +- [dApp Development Frameworks](https://ethereum.org/en/developers/docs/frameworks/) +- [A Definitive List of Ethereum Developer Tools - Frameworks](https://media.consensys.net/an-definitive-list-of-ethereum-developer-tools-2159ce865974#frameworks) +- [Top 10 Smart Contract Developer Tools You Need for 2022](https://medium.com/better-programming/top-10-smart-contract-developer-tools-you-need-for-2022-b763f5df689a) diff --git a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/readme.md b/src/roadmaps/blockchain/content/104-smart-contract-frameworks/readme.md deleted file mode 100644 index 103cf9487..000000000 --- a/src/roadmaps/blockchain/content/104-smart-contract-frameworks/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Smart Contract Frameworks - -Building a full-fledged dapp requires different pieces of technology. Software frameworks include many of the needed features or provide easy plugin systems to pick the tools you desire. - -Free Content -dApp Development Frameworks -A Definitive List of Ethereum Developer Tools - Frameworks -Top 10 Smart Contract Developer Tools You Need for 2022 diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/100-fuzz-testing-and-static-analysis.md b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/100-fuzz-testing-and-static-analysis.md index f4306de22..ae6d2910b 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/100-fuzz-testing-and-static-analysis.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/100-fuzz-testing-and-static-analysis.md @@ -4,7 +4,6 @@ Static analysis is the analysis of smart contracts performed without executing them. - Free Content -Getting Started with Smart Contract Fuzzing -Solidity smart contract Static Code Analysis -Smart contract Fuzzing \ No newline at end of file + - [Getting Started with Smart Contract Fuzzing](https://www.immunebytes.com/blog/getting-started-with-smart-contract-fuzzing/) +- [Solidity smart contract Static Code Analysis](https://lightrains.com/blogs/solidity-static-analysis-tools/#static-code-analysis) +- [Smart contract Fuzzing](https://youtu.be/LRyyNzrqgOc) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/101-common-threat-vectors.md b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/101-common-threat-vectors.md index a85aab6c2..f02a9039b 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/101-common-threat-vectors.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/101-common-threat-vectors.md @@ -2,7 +2,6 @@ Smart contract audits enable developers to provide a thorough analysis of smart contract sets. The main goal of a smart contract audit is to detect and eliminate vulnerabilities, starting with the most common threat vectors. -Free Content -Smart Contract Attack Vectors -Solidity Security: Comprehensive list of known attack vectors and common anti-patterns -Blockchain Attack Vectors: Vulnerabilities of the Most Secure Technology +- [Smart Contract Attack Vectors](https://github.com/kadenzipfel/smart-contract-attack-vectors) +- [Solidity Security: Comprehensive list of known attack vectors and common anti-patterns](https://blog.sigmaprime.io/solidity-security.html) +- [Blockchain Attack Vectors: Vulnerabilities of the Most Secure Technology](https://www.apriorit.com/dev-blog/578-blockchain-attack-vectors) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/102-source-of-randomness-attacks.md b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/102-source-of-randomness-attacks.md index 7c30e94d8..40be7f2d5 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/102-source-of-randomness-attacks.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/102-source-of-randomness-attacks.md @@ -2,5 +2,4 @@ The security of cryptographic systems depends on some secret data that is known to authorized persons but unknown and unpredictable to others. To achieve this unpredictability, some randomization is typically employed. Modern cryptographic protocols often require frequent generation of random quantities. Cryptographic attacks that subvert or exploit weaknesses in this process are known as randomness attacks. -Free Content -Smart Contract Randomness or ReplicatedLogic Attack +- [Smart Contract Randomness or ReplicatedLogic Attack](https://blog.finxter.com/randomness-or-replicatedlogic-attack-on-smart-contracts/) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/index.md b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/index.md new file mode 100644 index 000000000..31eac6d50 --- /dev/null +++ b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/index.md @@ -0,0 +1,6 @@ +# Practices + +Smart contract programming requires a different engineering mindset. The cost of failure can be high, and change can be difficult. + +- [Ethereum Smart Contract Security Best Practices](https://consensys.github.io/smart-contract-best-practices/) +- [Smart Contract Security and Auditing 101](https://youtu.be/0aJfCug1zTM) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/readme.md b/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/readme.md deleted file mode 100644 index e7887d2d0..000000000 --- a/src/roadmaps/blockchain/content/105-blockchain-security/100-practices/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Practices - -Smart contract programming requires a different engineering mindset. The cost of failure can be high, and change can be difficult. - -Free Content -Ethereum Smart Contract Security Best Practices -Smart Contract Security and Auditing 101 \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/100-slither.md b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/100-slither.md index 10a9a7995..ed40f9a37 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/100-slither.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/100-slither.md @@ -2,5 +2,4 @@ Slither is a Solidity static analysis framework written in Python 3. It runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. Slither enables developers to find vulnerabilities, enhance their code comprehension, and quickly prototype custom analyses. -Free Content -Slither, the Solidity source analyzer +- [Slither, the Solidity source analyzer](https://github.com/crytic/slither/blob/master/README.md) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/101-manticore.md b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/101-manticore.md index 58cdfcf5b..2fa4826a6 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/101-manticore.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/101-manticore.md @@ -2,5 +2,4 @@ Manticore is a symbolic execution tool for analysis of smart contracts and binaries. -Free Content -Manticore Docs +- [Manticore Docs](https://manticore.readthedocs.io/) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/102-mythx.md b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/102-mythx.md index 5e73faa2c..856898777 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/102-mythx.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/102-mythx.md @@ -2,6 +2,5 @@ MythX is a comprehensive smart contract security analysis tools developed by Consensys. It allows users to detect security vulnerabilities in Ethereum smart contracts throughout the development life cycle as well as analyze Solidity dapps for security holes and known smart contract vulnerabilities. -Free Content -MythX Official Site -MythX Documentation +- [MythX Official Site](https://mythx.io/) +- [MythX Documentation](https://docs.mythx.io/) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/103-echidna.md b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/103-echidna.md index 646c2a6bc..d7305f388 100644 --- a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/103-echidna.md +++ b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/103-echidna.md @@ -2,5 +2,4 @@ Echidna is a Haskell program designed for fuzzing/property-based testing of Ethereum smarts contracts. It uses sophisticated grammar-based fuzzing campaigns based on a contract ABI to falsify user-defined predicates or Solidity assertions. -Free Content -Echidna: A Fast Smart Contract Fuzzer +- [Echidna: A Fast Smart Contract Fuzzer](https://github.com/crytic/echidna/blob/master/README.md) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/readme.md b/src/roadmaps/blockchain/content/105-blockchain-security/101-tools/index.md similarity index 100% rename from src/roadmaps/blockchain/content/105-blockchain-security/101-tools/readme.md rename to src/roadmaps/blockchain/content/105-blockchain-security/101-tools/index.md diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/index.md b/src/roadmaps/blockchain/content/105-blockchain-security/index.md new file mode 100644 index 000000000..d704cf9b5 --- /dev/null +++ b/src/roadmaps/blockchain/content/105-blockchain-security/index.md @@ -0,0 +1,6 @@ +# Security + +Smart contracts are extremely flexible, capable of both holding large quantities of tokens (often in excess of $1B) and running immutable logic based on previously deployed smart contract code. While this has created a vibrant and creative ecosystem of trustless, interconnected smart contracts, it is also the perfect ecosystem to attract attackers looking to profit by exploiting vulnerabilities + +- [Smart Contract Security](https://ethereum.org/en/developers/docs/smart-contracts/security/) +- [Ethereum Smart Contract Security Recommendations](https://consensys.net/blog/developers/ethereum-smart-contract-security-recommendations/) diff --git a/src/roadmaps/blockchain/content/105-blockchain-security/readme.md b/src/roadmaps/blockchain/content/105-blockchain-security/readme.md deleted file mode 100644 index fd8414859..000000000 --- a/src/roadmaps/blockchain/content/105-blockchain-security/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Security - -Smart contracts are extremely flexible, capable of both holding large quantities of tokens (often in excess of $1B) and running immutable logic based on previously deployed smart contract code. While this has created a vibrant and creative ecosystem of trustless, interconnected smart contracts, it is also the perfect ecosystem to attract attackers looking to profit by exploiting vulnerabilities - -Free Content -Smart Contract Security -Ethereum Smart Contract Security Recommendations diff --git a/src/roadmaps/blockchain/content/106-management-platforms/100-open-zeppelin.md b/src/roadmaps/blockchain/content/106-management-platforms/100-open-zeppelin.md index 74a663cd6..b8a1cf011 100644 --- a/src/roadmaps/blockchain/content/106-management-platforms/100-open-zeppelin.md +++ b/src/roadmaps/blockchain/content/106-management-platforms/100-open-zeppelin.md @@ -2,5 +2,4 @@ OpenZeppelin Contracts helps you minimize risk by using battle-tested libraries of smart contracts for Ethereum and other blockchains. It includes the most used implementations of ERC standards. -Free Content -OpenZeppelin Contracts +- [OpenZeppelin Contracts](https://docs.openzeppelin.com/contracts/) diff --git a/src/roadmaps/blockchain/content/106-management-platforms/readme.md b/src/roadmaps/blockchain/content/106-management-platforms/index.md similarity index 100% rename from src/roadmaps/blockchain/content/106-management-platforms/readme.md rename to src/roadmaps/blockchain/content/106-management-platforms/index.md diff --git a/src/roadmaps/blockchain/content/107-version-control-systems/100-git.md b/src/roadmaps/blockchain/content/107-version-control-systems/100-git.md index e6ec03032..68a29ab4d 100644 --- a/src/roadmaps/blockchain/content/107-version-control-systems/100-git.md +++ b/src/roadmaps/blockchain/content/107-version-control-systems/100-git.md @@ -2,8 +2,7 @@ [Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. -Free Content -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes -Learn Git on the command line +- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) +- [Learn Git on the command line](https://github.com/jlord/git-it-electron) diff --git a/src/roadmaps/blockchain/content/107-version-control-systems/index.md b/src/roadmaps/blockchain/content/107-version-control-systems/index.md new file mode 100644 index 000000000..94a6a2900 --- /dev/null +++ b/src/roadmaps/blockchain/content/107-version-control-systems/index.md @@ -0,0 +1,7 @@ +# 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. + +- [Git](https://git-scm.com/) +- [Mercurial](https://www.mercurial-scm.org/) +- [What is Version Control?](https://www.atlassian.com/git/tutorials/what-is-version-control) diff --git a/src/roadmaps/blockchain/content/107-version-control-systems/readme.md b/src/roadmaps/blockchain/content/107-version-control-systems/readme.md deleted file mode 100644 index 5c44b2882..000000000 --- a/src/roadmaps/blockchain/content/107-version-control-systems/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 -Git -Mercurial -What is Version Control? diff --git a/src/roadmaps/blockchain/content/108-repo-hosting-services/100-github.md b/src/roadmaps/blockchain/content/108-repo-hosting-services/100-github.md index 789e6e65d..0d5adcabd 100644 --- a/src/roadmaps/blockchain/content/108-repo-hosting-services/100-github.md +++ b/src/roadmaps/blockchain/content/108-repo-hosting-services/100-github.md @@ -2,12 +2,10 @@ 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 - -GitHub Website -GitHub Documentation -What is GitHub? -Git vs. GitHub: What's the difference? -Git and GitHub for Beginners -Git and GitHub - CS50 Beyond 2019 -How to Use Git in a Professional Dev Team +- [GitHub Website](https://github.com) +- [GitHub Documentation](https://docs.github.com/en/get-started/quickstart) +- [What is GitHub?](https://www.youtube.com/watch?v=w3jLJU7DT5E) +- [Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU) +- [Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk) +- [Git and GitHub - CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I) +- [How to Use Git in a Professional Dev Team](https://ooloo.io/project/github-flow) diff --git a/src/roadmaps/blockchain/content/108-repo-hosting-services/101-gitlab.md b/src/roadmaps/blockchain/content/108-repo-hosting-services/101-gitlab.md index ed8109bd6..702145982 100644 --- a/src/roadmaps/blockchain/content/108-repo-hosting-services/101-gitlab.md +++ b/src/roadmaps/blockchain/content/108-repo-hosting-services/101-gitlab.md @@ -2,7 +2,5 @@ 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 - -GitLab Website -GitLab Documentation +- [GitLab Website](https://gitlab.com/) +- [GitLab Documentation](https://docs.gitlab.com/) diff --git a/src/roadmaps/blockchain/content/108-repo-hosting-services/102-bitbucket.md b/src/roadmaps/blockchain/content/108-repo-hosting-services/102-bitbucket.md index e5de098c2..bc56c2899 100644 --- a/src/roadmaps/blockchain/content/108-repo-hosting-services/102-bitbucket.md +++ b/src/roadmaps/blockchain/content/108-repo-hosting-services/102-bitbucket.md @@ -4,10 +4,9 @@ Bitbucket is a Git based hosting and source code repository service that is Atla 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 Website -A brief overview of Bitbucket -Getting started with Bitbucket -Using Git with Bitbucket Cloud -Bitbucket tutorial | How to use Bitbucket Cloud -Bitbucket Tutorial | Bitbucket for Beginners +- [Bitbucket Website](https://bitbucket.org/product) +- [A brief overview of Bitbucket](https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket) +- [Getting started with Bitbucket](https://bitbucket.org/product/guides/basics/bitbucket-interface) +- [Using Git with Bitbucket Cloud](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) +- [Bitbucket tutorial | How to use Bitbucket Cloud](https://www.youtube.com/watch?v=M44nEyd_5To) +- [Bitbucket Tutorial | Bitbucket for Beginners](https://www.youtube.com/watch?v=i5T-DB8tb4A) diff --git a/src/roadmaps/blockchain/content/108-repo-hosting-services/index.md b/src/roadmaps/blockchain/content/108-repo-hosting-services/index.md new file mode 100644 index 000000000..3469e1dc7 --- /dev/null +++ b/src/roadmaps/blockchain/content/108-repo-hosting-services/index.md @@ -0,0 +1,8 @@ +# 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. + +- [GitHub](https://github.com/features/) +- [GitLab](https://about.gitlab.com/) +- [BitBucket](https://bitbucket.org/product/guides/getting-started/overview) +- [How to choose the best source code repository](https://bitbucket.org/product/code-repository) diff --git a/src/roadmaps/blockchain/content/108-repo-hosting-services/readme.md b/src/roadmaps/blockchain/content/108-repo-hosting-services/readme.md deleted file mode 100644 index 574869a99..000000000 --- a/src/roadmaps/blockchain/content/108-repo-hosting-services/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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 -GitHub -GitLab -BitBucket -How to choose the best source code repository diff --git a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/100-react.md b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/100-react.md index d02993635..00b7cf345 100644 --- a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/100-react.md +++ b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/100-react.md @@ -8,10 +8,10 @@ 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 -React Website -Official Getting Started -The Beginner's Guide to React -React JS Course for Beginners -React Course - Beginner's Tutorial for React JavaScript Library [2022] -Understanding React's UI Rendering Process \ No newline at end of file +- [React Roadmap](/react) +- [React Website](https://reactjs.org/) +- [Official Getting Started](https://reactjs.org/tutorial/tutorial.html) +- [The Beginners Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react) +- [React JS Course for Beginners](https://www.youtube.com/watch?v=nTeuhbP7wdE) +- [React Course - Beginners Tutorial for React JavaScript Library [2022]](https://www.youtube.com/watch?v=bMknfKXIFA8) +- [Understanding Reacts UI Rendering Process](https://www.youtube.com/watch?v=i793Qm6kv3U) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/101-angular.md b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/101-angular.md index 20b53f03f..52c3b4a90 100644 --- a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/101-angular.md +++ b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/101-angular.md @@ -8,5 +8,5 @@ Angular is a component based front-end development framework built on TypeScript which includes a collection of well-integrated libraries that include features like routing, forms management, client-server communication, and more. -Free Content -Official - Getting started with Angular \ No newline at end of file +- [Angular Roadmap](/angular) +- [Official - Getting started with Angular](https://angular.io/start) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/102-vue.md b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/102-vue.md index cb497cd89..60bf95386 100644 --- a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/102-vue.md +++ b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/102-vue.md @@ -8,8 +8,8 @@ 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 -Vue.js Website -Official Getting Started -Vue.js Course for Beginners -Vue.js Crash Course \ No newline at end of file +- [Vue Roadmap](/vue) +- [Vue.js Website](https://vuejs.org/) +- [Official Getting Started](https://vuejs.org/v2/guide/) +- [Vue.js Course for Beginners](https://www.youtube.com/watch?v=FXpIoQ_rT_c) +- [Vue.js Crash Course](https://www.youtube.com/watch?v=qZXt1Aom3Cs) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/index.md b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/index.md new file mode 100644 index 000000000..c0d91f045 --- /dev/null +++ b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/index.md @@ -0,0 +1,7 @@ +# Frontend Frameworks + +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. + +- [Web3 Frontend – Everything You Need to Learn About Building Dapp Frontends](https://moralis.io/web3-frontend-everything-you-need-to-learn-about-building-dapp-frontends/) +- [What is the difference between a framework and a library?](https://www.youtube.com/watch?v=D_MO9vIRBcA) +- [ Which JS Framework is best?](https://www.youtube.com/watch?v=cuHDQhDhvPE) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/readme.md b/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/readme.md deleted file mode 100644 index 9aa0b2bda..000000000 --- a/src/roadmaps/blockchain/content/109-dapps/100-frontend-frameworks/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Frontend Frameworks - -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 -Web3 Frontend – Everything You Need to Learn About Building Dapp Frontends -What is the difference between a framework and a library? - Which JS Framework is best? \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/100-testing.md b/src/roadmaps/blockchain/content/109-dapps/100-testing.md index dd16f56a3..71b5d970b 100644 --- a/src/roadmaps/blockchain/content/109-dapps/100-testing.md +++ b/src/roadmaps/blockchain/content/109-dapps/100-testing.md @@ -4,7 +4,6 @@ A key to building software that meets requirements without defects is testing. S Like traditional software, testing dApps involves testing the entire stack that makes up the dApp (backend, frontend, db, etc.). -Free Content -What is Software Testing? -Testing Pyramid -How to test dApps (decentralized applications) \ No newline at end of file +- [What is Software Testing?](https://www.guru99.com/software-testing-introduction-importance.html) +- [Testing Pyramid](https://www.browserstack.com/guide/testing-pyramid-for-test-automation) +- [How to test dApps (decentralized applications)](https://rhian-is.medium.com/how-to-test-dapps-decentralized-applications-4662cf61db90) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/101-deployment.md b/src/roadmaps/blockchain/content/109-dapps/101-deployment.md index 9650b0172..a97f13cd9 100644 --- a/src/roadmaps/blockchain/content/109-dapps/101-deployment.md +++ b/src/roadmaps/blockchain/content/109-dapps/101-deployment.md @@ -2,6 +2,5 @@ Deploying a dApp involves deployment of all of its layers, generally through a management framework. -Free Content -Tutorial for building an Ethereum DApp with Integrated Web3 Monitoring -Build and Deploy a Modern Web 3.0 Blockchain App +- [Tutorial for building an Ethereum DApp with Integrated Web3 Monitoring](https://www.moesif.com/blog/blockchain/ethereum/Tutorial-for-building-Ethereum-Dapp-with-Integrated-Error-Monitoring/) +- [Build and Deploy a Modern Web 3.0 Blockchain App](https://youtu.be/Wn_Kb3MR_cU) diff --git a/src/roadmaps/blockchain/content/109-dapps/103-architecture.md b/src/roadmaps/blockchain/content/109-dapps/103-architecture.md index cfa3002ad..f062c4972 100644 --- a/src/roadmaps/blockchain/content/109-dapps/103-architecture.md +++ b/src/roadmaps/blockchain/content/109-dapps/103-architecture.md @@ -2,7 +2,6 @@ Unlike Web2 applications, in Web3 there’s no centralized database that stores the application state or user identity, and there’s no centralized web server where the backend logic resides. -Free Content -The Architecture of a Web 3.0 application -Decentralized Applications Architecture: Back End, Security and Design Patterns -Blockchain Development: Dapp Architecture \ No newline at end of file +- [The Architecture of a Web 3.0 application](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) +- [Decentralized Applications Architecture: Back End, Security and Design Patterns](https://www.freecodecamp.org/news/how-to-design-a-secure-backend-for-your-decentralized-application-9541b5d8bddb/) +- [Blockchain Development: Dapp Architecture](https://youtu.be/KBSq8-LnUDI?t=286) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/104-security.md b/src/roadmaps/blockchain/content/109-dapps/104-security.md index a35c3974a..720abf615 100644 --- a/src/roadmaps/blockchain/content/109-dapps/104-security.md +++ b/src/roadmaps/blockchain/content/109-dapps/104-security.md @@ -2,7 +2,6 @@ dApps face unique security challenges as they run on immutable blockchains. dApps are harder to maintain, and developers cannot modify or update their codes once deployed. Therefore, special consideration must be taken before putting it on the blockchain. -Free Content -DAPP Security Standards -dApp Security Considerations -dApp Security:All You Need to Know +- [DAPP Security Standards](https://github.com/Dexaran/DAPP-security-standards/blob/master/README.md) +- [dApp Security Considerations](https://livebook.manning.com/book/building-ethereum-dapps/chapter-14/) +- [dApp Security:All You Need to Know](https://www.immunebytes.com/blog/dapp-security/#Benefits_of_DApps_Security) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/100-defi.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/100-defi.md index f74c13c10..9124992d4 100644 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/100-defi.md +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/100-defi.md @@ -2,7 +2,6 @@ Decentralized finance offers financial instruments without relying on intermediaries such as brokerages, exchanges, or banks by using smart contracts on a blockchain. -Free Content -Decentralized Finance (DeFi) Definition -What is DeFi? -What is DeFi? (Decentralized Finance Animated) +- [Decentralized Finance (DeFi) Definition](https://www.investopedia.com/decentralized-finance-defi-5113835) +- [What is DeFi?](https://www.coinbase.com/learn/crypto-basics/what-is-defi) +- [What is DeFi? (Decentralized Finance Animated)](https://www.youtube.com/watch?v=17QRFlml4pA) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/101-daos.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/101-daos.md index 1f5c39f7d..4b6fc18a9 100644 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/101-daos.md +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/101-daos.md @@ -2,6 +2,5 @@ A decentralized autonomous organization (DAO) is an emerging form of legal structure. With no central governing body, every member within a DAO typically shares a common goal and attempt to act in the best interest of the entity. Popularized through cryptocurrency enthusiasts and blockchain technology, DAOs are used to make decisions in a bottoms-up management approach. -Free Content -What Is A DAO And How Do They Work? -Decentralized Autonomous Organization (DAO) +- [What Is A DAO And How Do They Work?](https://consensys.net/blog/blockchain-explained/what-is-a-dao-and-how-do-they-work/) +- [Decentralized Autonomous Organization (DAO)](https://www.investopedia.com/tech/what-dao/) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/102-nfts.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/102-nfts.md index 7b85154bc..1dfd2de53 100644 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/102-nfts.md +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/102-nfts.md @@ -2,7 +2,6 @@ A non-fungible token (NFT) is a financial security consisting of digital data stored in a blockchain, a form of distributed ledger. The ownership of an NFT is recorded in the blockchain, and can be transferred by the owner, allowing NFTs to be sold and traded. -Free Content -Non-Fungible Token (NFT) -NFTs, explained -NFT Explained In 5 Minutes | What Is NFT? - Non Fungible Token +- [Non-Fungible Token (NFT)](https://www.investopedia.com/non-fungible-tokens-nft-5115211) +- [NFTs, explained](https://www.theverge.com/22310188/nft-explainer-what-is-blockchain-crypto-art-faq) +- [NFT Explained In 5 Minutes | What Is NFT? - Non Fungible Token](https://youtu.be/NNQLJcJEzv0) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/103-payments.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/103-payments.md index 6c31cd7ae..12da570e9 100644 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/103-payments.md +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/103-payments.md @@ -2,6 +2,5 @@ Blockchain technology has the ability to eliminate all the tolls exacted by centralized organization when transferring payments. -Free Content -How does blockchain impact global payments and remittances? -Smart Contract Use Cases - Payments +- [How does blockchain impact global payments and remittances?](https://consensys.net/blockchain-use-cases/finance/#payments) +- [Smart Contract Use Cases - Payments](https://blog.chain.link/smart-contract-use-cases/#external-payments) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/104-insurance.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/104-insurance.md index 30bd8f24f..5a6624981 100644 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/104-insurance.md +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/104-insurance.md @@ -2,6 +2,5 @@ Blockchain technology has the ability to automate claims functions by verifying real-world data through the use of an oracle. It also automates payments between parties for claims and thus lower administrative costs for insurance companies. -Free Content -Smart Contract Use Cases - Insurance -Top 7 Use Cases of Blockchain in the Insurance Industry +- [Smart Contract Use Cases - Insurance](https://blog.chain.link/smart-contract-use-cases/#insurance) +- [Top 7 Use Cases of Blockchain in the Insurance Industry](https://imaginovation.net/blog/blockchain-insurance-industry-examples/) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/index.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/index.md new file mode 100644 index 000000000..449636f3e --- /dev/null +++ b/src/roadmaps/blockchain/content/109-dapps/105-applicability/index.md @@ -0,0 +1,7 @@ +# Applicability + +dApps can be used for just about anything that requires two or more parties to agree on something. When the appropriate conditions are met, the smart contract will execute automatically. An important differentiation is that these transactions are no longer based on trust but they are rather based on cryptographically-backed smart contracts. + +- [What Is a dApp? A Guide to Decentralized Applications](https://www.sofi.com/learn/content/what-is-a-dapp/) +- [Blockchain Use Cases and Applications by Industry](https://consensys.net/blockchain-use-cases/) +- [The real-world use cases for blockchain technology](https://roboticsandautomationnews.com/2022/05/20/the-real-world-use-cases-for-blockchain-technology/) diff --git a/src/roadmaps/blockchain/content/109-dapps/105-applicability/readme.md b/src/roadmaps/blockchain/content/109-dapps/105-applicability/readme.md deleted file mode 100644 index bb3ccf49c..000000000 --- a/src/roadmaps/blockchain/content/109-dapps/105-applicability/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Applicability - -dApps can be used for just about anything that requires two or more parties to agree on something. When the appropriate conditions are met, the smart contract will execute automatically. An important differentiation is that these transactions are no longer based on trust but they are rather based on cryptographically-backed smart contracts. - -Free Content -What Is a dApp? A Guide to Decentralized Applications -Blockchain Use Cases and Applications by Industry -The real-world use cases for blockchain technology diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/100-alchemy.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/100-alchemy.md index bc392ea67..105d6e96a 100644 --- a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/100-alchemy.md +++ b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/100-alchemy.md @@ -2,5 +2,4 @@ Alchemy is a developer platform that empowers companies to build scalable and reliable decentralized applications without the hassle of managing blockchain infrastructure in-house. -Free Content -Alchemy official site +- [Alchemy official site](https://www.alchemy.com/) diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/101-infura.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/101-infura.md index d6ebfe692..287eca8a7 100644 --- a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/101-infura.md +++ b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/101-infura.md @@ -2,5 +2,4 @@ Infura provides the tools and infrastructure that allow developers to easily take their blockchain application from testing to scaled deployment - with simple, reliable access to Ethereum and IPFS. -Free Content -Infura official site +- [Infura official site](https://infura.io/) diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/102-moralis.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/102-moralis.md index acd611f36..98742a4a4 100644 --- a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/102-moralis.md +++ b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/102-moralis.md @@ -2,5 +2,4 @@ Moralis provides a single workflow for building high performance dapps. Fully compatible with your favorite web3 tools and services. -Free Content -Moralis official site +- [Moralis official site](https://moralis.io/) diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/103-quicknode.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/103-quicknode.md index 290f739e2..3c903ec60 100644 --- a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/103-quicknode.md +++ b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/103-quicknode.md @@ -2,5 +2,4 @@ QuickNode is a Web3 developer platform used to build and scale blockchain applications. -Free Content -Quicknode official site \ No newline at end of file +- [Quicknode official site](https://www.quicknode.com/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/index.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/index.md new file mode 100644 index 000000000..2777fa701 --- /dev/null +++ b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/index.md @@ -0,0 +1,6 @@ +# Node as a Service (NaaS) + +Running your own blockchain node can be challenging, especially when getting started or while scaling fast. There are a number of services that run optimized node infrastructures for you, so you can focus on developing your application or product instead. + +- [Blockchain Node Providers and How They Work](https://www.infoq.com/articles/blockchain-as-a-service-get-block/) +- [Node as a Service - Ethereum](https://ethereum.org/en/developers/docs/nodes-and-clients/nodes-as-a-service/) diff --git a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/readme.md b/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/readme.md deleted file mode 100644 index 8d3f5dab6..000000000 --- a/src/roadmaps/blockchain/content/109-dapps/106-node-as-a-service/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Node as a Service (NaaS) - -Running your own blockchain node can be challenging, especially when getting started or while scaling fast. There are a number of services that run optimized node infrastructures for you, so you can focus on developing your application or product instead. - -Free Content -Blockchain Node Providers and How They Work -Node as a Service - Ethereum diff --git a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/100-javascript.md b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/100-javascript.md index 113919843..3ef92a85d 100644 --- a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/100-javascript.md +++ b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/100-javascript.md @@ -2,14 +2,11 @@ JavaScript, often abbreviated JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. It lets us add interactivity to pages e.g. you might have seen sliders, alerts, click interactions, and popups etc on different websites -- all of that is built using JavaScript. Apart from being used in the browser, it is also used in other non-browser environments as well such as Node.js for writing server-side code in JavaScript, Electron for writing desktop applications, React Native for mobile applications and so on. -Free Content - -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -Eloquent Javascript - Book -You Don't Know JS Yet (book series) -JavaScript Crash Course for Beginners - -Node.js Crash Course -Node.js Tutorial for Beginners -Codecademy - Learn JavaScript \ No newline at end of file +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [Eloquent Javascript - Book](https://eloquentjavascript.net/) +- [You Dont Know JS Yet (book series) ](https://github.com/getify/You-Dont-Know-JS) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c) +- [Node.js Crash Course](https://www.youtube.com/watch?v=fBNz5xF-Kx4) +- [Node.js Tutorial for Beginners](https://www.youtube.com/watch?v=TlB_eWDSMt4) +- [Codecademy - Learn JavaScript](https://www.codecademy.com/learn/introduction-to-javascript) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/101-python.md b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/101-python.md index 022ce13c0..38157d76d 100644 --- a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/101-python.md +++ b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/101-python.md @@ -8,10 +8,10 @@ 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, procedural or object-oriented programmatic ways. -Free Content -Python Website -Python Getting Started -W3Schools - Python Tutorial -Python Crash Course -Automate the Boring Stuff -Codecademy - Learn Python 2 +- [Python Roadmap](/python) +- [Python Website](https://www.python.org/) +- [Python Getting Started](https://www.python.org/about/gettingstarted/) +- [W3Schools - Python Tutorial ](https://www.w3schools.com/python/) +- [Python Crash Course](https://ehmatthes.github.io/pcc/) +- [Automate the Boring Stuff](https://automatetheboringstuff.com/) +- [Codecademy - Learn Python 2](https://www.codecademy.com/learn/learn-python) diff --git a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md index 8b1f48695..aa993745b 100644 --- a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md +++ b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md @@ -9,9 +9,9 @@ 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 -A Tour of Go – Go Basics -Go Reference Documentation -Go by Example - annotated example programs -Learn Go | Codecademy -W3Schools Go Tutorial \ No newline at end of file +- [Go Roadmap](/golang) +- [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) +- [Go Reference Documentation](https://go.dev/doc/) +- [Go by Example - annotated example programs](https://gobyexample.com/) +- [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) +- [W3Schools Go Tutorial ](https://www.w3schools.com/go/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/readme.md b/src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/index.md similarity index 100% rename from src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/readme.md rename to src/roadmaps/blockchain/content/109-dapps/107-supporting-languages/index.md diff --git a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/100-ethers-js.md b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/100-ethers-js.md index 18e08cb9f..1f41492fb 100644 --- a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/100-ethers-js.md +++ b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/100-ethers-js.md @@ -2,5 +2,4 @@ The ethers.js library aims to be a complete and compact library for interacting with the Ethereum Blockchain and its ecosystem. It was originally designed for use with ethers.io and has since expanded into a more general-purpose library. -Free Content -Ethers.js Documentation +- [Ethers.js Documentation](https://docs.ethers.io/) diff --git a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/101-web3-js.md b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/101-web3-js.md index 8a870ade0..e1c23d784 100644 --- a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/101-web3-js.md +++ b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/101-web3-js.md @@ -2,5 +2,4 @@ web3.js is a collection of libraries that allow you to interact with a local or remote ethereum node using HTTP, IPC or WebSocket. -Free Content -web3.js Documentation \ No newline at end of file +- [web3.js Documentation](https://web3js.readthedocs.io/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/102-moralis.md b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/102-moralis.md index b55c2e433..7f59afbad 100644 --- a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/102-moralis.md +++ b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/102-moralis.md @@ -2,5 +2,4 @@ A library that gives you access to the powerful Moralis Server backend from your JavaScript app. -Free Content -Moralis SDK +- [Moralis SDK](https://github.com/MoralisWeb3/Moralis-JS-SDK/blob/main/README.md) diff --git a/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/readme.md b/src/roadmaps/blockchain/content/109-dapps/108-client-libraries/index.md similarity index 100% rename from src/roadmaps/blockchain/content/109-dapps/108-client-libraries/readme.md rename to src/roadmaps/blockchain/content/109-dapps/108-client-libraries/index.md diff --git a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/100-geth.md b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/100-geth.md index a26e54c6f..64f156e5a 100644 --- a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/100-geth.md +++ b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/100-geth.md @@ -2,5 +2,4 @@ Go Ethereum (Geth) is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is written in Go, fully open source and licensed under the GNU LGPL v3. -Free Content -Geth Documentation +- [Geth Documentation](https://geth.ethereum.org/docs/) diff --git a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/101-besu.md b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/101-besu.md index 4dc46c9a2..0fe1119c8 100644 --- a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/101-besu.md +++ b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/101-besu.md @@ -2,5 +2,4 @@ Besu is an Apache 2.0 licensed, MainNet compatible, Ethereum client written in Java. -Free Content -Besu Ethereum Client +- [Besu Ethereum Client](https://github.com/hyperledger/besu) diff --git a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/102-nethermind.md b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/102-nethermind.md index cc8c03b43..fdfd785b7 100644 --- a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/102-nethermind.md +++ b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/102-nethermind.md @@ -2,5 +2,4 @@ Nethermind is a high-performance, highly configurable full Ethereum protocol client built on .NET that runs on Linux, Windows, and macOS, and supports Clique, Aura, Ethash, and Proof-of-Stake consensus algorithms. -Free Content -Nethermind Documentation +- [Nethermind Documentation](https://docs.nethermind.io/nethermind/) diff --git a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/103-substrate.md b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/103-substrate.md index 86e514381..86154bcc0 100644 --- a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/103-substrate.md +++ b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/103-substrate.md @@ -2,5 +2,4 @@ Substrate is a Software Development Kit (SDK) specifically designed to provide you with all of the fundamental components s blockchain requires so you can focus on crafting the logic that makes your chain unique and innovative. -Free Content -Substrate Documentation \ No newline at end of file +- [Substrate Documentation](https://docs.substrate.io/quick-start/) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/readme.md b/src/roadmaps/blockchain/content/109-dapps/109-client-nodes/index.md similarity index 100% rename from src/roadmaps/blockchain/content/109-dapps/109-client-nodes/readme.md rename to src/roadmaps/blockchain/content/109-dapps/109-client-nodes/index.md diff --git a/src/roadmaps/blockchain/content/109-dapps/index.md b/src/roadmaps/blockchain/content/109-dapps/index.md new file mode 100644 index 000000000..63884aa6b --- /dev/null +++ b/src/roadmaps/blockchain/content/109-dapps/index.md @@ -0,0 +1,6 @@ +# dApps + +A decentralised application (dApp) is an application that can operate autonomously, through the use of smart contracts that run on a blockchain. Like traditional applications, dApps provide some function or utility to its users. + +- [Introduction to dApps](https://ethereum.org/en/developers/docs/dapps/) +- [What Is a Dapp? Decentralized Apps Explained](https://www.coindesk.com/learn/what-is-a-dapp-decentralized-apps-explained/) diff --git a/src/roadmaps/blockchain/content/109-dapps/readme.md b/src/roadmaps/blockchain/content/109-dapps/readme.md deleted file mode 100644 index 7ab1a1d04..000000000 --- a/src/roadmaps/blockchain/content/109-dapps/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# dApps - -A decentralised application (dApp) is an application that can operate autonomously, through the use of smart contracts that run on a blockchain. Like traditional applications, dApps provide some function or utility to its users. - -Free Content -Introduction to dApps -What Is a Dapp? Decentralized Apps Explained diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/100-state-and-payment-channels.md b/src/roadmaps/blockchain/content/110-building-for-scale/100-state-and-payment-channels.md index 9856b2e2a..41a3839d9 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/100-state-and-payment-channels.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/100-state-and-payment-channels.md @@ -2,6 +2,5 @@ State channels refer to the process in which users transact with one another directly outside of the blockchain, or ‘off-chain,’ and greatly minimize their use of ‘on-chain’ operations. -Free Content -The Basics of State Channels -State Channels: An Introduction to Off-chain Transactions +- [The Basics of State Channels](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) +- [State Channels: An Introduction to Off-chain Transactions](https://www.talentica.com/blogs/state-channels-an-introduction-to-off-chain-transactions/) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/101-optimistic-rollups-and-fraud-proofs.md b/src/roadmaps/blockchain/content/110-building-for-scale/101-optimistic-rollups-and-fraud-proofs.md index f3cb313b5..960465d72 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/101-optimistic-rollups-and-fraud-proofs.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/101-optimistic-rollups-and-fraud-proofs.md @@ -4,5 +4,4 @@ Optimistic rollups allow anyone to publish blocks without providing proofs of validity. However, to ensure the chain remains safe, optimistic rollups specify a time window during which anyone can dispute a state transition. -Free Content -How Do Optimistic Rollups Work (The Complete Guide) \ No newline at end of file +- [How Do Optimistic Rollups Work (The Complete Guide)](https://www.alchemy.com/overviews/optimistic-rollups) \ No newline at end of file diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/102-zero-knowledge-rollups-and-zero-knowledge-proof.md b/src/roadmaps/blockchain/content/110-building-for-scale/102-zero-knowledge-rollups-and-zero-knowledge-proof.md index 0b74b8d01..5ce70ef3d 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/102-zero-knowledge-rollups-and-zero-knowledge-proof.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/102-zero-knowledge-rollups-and-zero-knowledge-proof.md @@ -2,7 +2,4 @@ Zero-knowledge rollups (ZK-rollups) are layer 2 scaling solutions that increase the throughput of a blockchain by moving computation and state-storage off-chain. -Free Content -Zero-Knowledge Rollups - Ethereum -What are Zero-Knowledge Rollups (ZK-rollups)? - +- [Zero-Knowledge Rollups - Ethereum](https://ethereum.org/en/developers/docs/scaling/zk-rollups) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/103-validium.md b/src/roadmaps/blockchain/content/110-building-for-scale/103-validium.md index 62d51009c..f5405c904 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/103-validium.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/103-validium.md @@ -2,5 +2,4 @@ Validium is a scaling solution that enforces integrity of transactions using validity proofs like ZK-rollups, but doesn’t store transaction data on the Ethereum Mainnet. While off-chain data availability introduces trade-offs, it can lead to massive improvements in scalability -Free Content -Validium - Ethereum +- [Validium - Ethereum](https://ethereum.org/en/developers/docs/scaling/validium/) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/104-plasma.md b/src/roadmaps/blockchain/content/110-building-for-scale/104-plasma.md index fe2b79c58..575e61c49 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/104-plasma.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/104-plasma.md @@ -2,5 +2,4 @@ Plasma is a framework that allows the creation of child blockchains that use the main Ethereum chain as a layer of trust and arbitration. In Plasma, child chains can be designed to meet the requirements of specific use cases, specifically those that are not currently feasible on Ethereum. -Free Content -Plasma Chains - Ethereum +- [Plasma Chains - Ethereum](https://ethereum.org/en/developers/docs/scaling/plasma/) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/105-sidechains.md b/src/roadmaps/blockchain/content/110-building-for-scale/105-sidechains.md index b0cbe8f54..358ead188 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/105-sidechains.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/105-sidechains.md @@ -2,6 +2,5 @@ A sidechain is a separate blockchain network that connects to another blockchain – called a parent blockchain or mainnet – via a two-way peg. -Free Content -Sidechains - Ethereum -An Introduction to Sidechains +- [Sidechains - Ethereum](https://ethereum.org/en/developers/docs/scaling/sidechains/) +- [An Introduction to Sidechains](https://www.coindesk.com/learn/an-introduction-to-sidechains) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/106-ethereum-2.md b/src/roadmaps/blockchain/content/110-building-for-scale/106-ethereum-2.md index fb2b11482..6a87eef32 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/106-ethereum-2.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/106-ethereum-2.md @@ -2,6 +2,5 @@ Ethereum 2.0 marks a long-anticipated upgrade to the Ethereum public mainnet. Designed to accelerate Ethereum’s usage and adoption by improving its performance, Ethereum 2.0 implements Proof of Stake. -Free Content -What Is Ethereum 2.0? -What Is Ethereum 2.0? Understanding The Merge +- [What Is Ethereum 2.0?](https://consensys.net/blog/blockchain-explained/what-is-ethereum-2/) +- [What Is Ethereum 2.0? Understanding The Merge](https://www.forbes.com/advisor/investing/cryptocurrency/ethereum-2/) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/107-on-chain-scaling.md b/src/roadmaps/blockchain/content/110-building-for-scale/107-on-chain-scaling.md index 94d342eaf..6cd74cbfa 100644 --- a/src/roadmaps/blockchain/content/110-building-for-scale/107-on-chain-scaling.md +++ b/src/roadmaps/blockchain/content/110-building-for-scale/107-on-chain-scaling.md @@ -2,5 +2,4 @@ On-chain scaling refers to any direct modification made to a blockchain, like data sharding and execution sharding in the incoming version of Ethereum 2.0. Another type of on-chain scaling would be a sidechain with two-way bridge to Ethereum, like Polygon. -Free Content -Scaling - Ethereum +- [Scaling - Ethereum](https://ethereum.org/en/developers/docs/scaling/) diff --git a/src/roadmaps/blockchain/content/110-building-for-scale/readme.md b/src/roadmaps/blockchain/content/110-building-for-scale/index.md similarity index 100% rename from src/roadmaps/blockchain/content/110-building-for-scale/readme.md rename to src/roadmaps/blockchain/content/110-building-for-scale/index.md diff --git a/src/roadmaps/blockchain/content/readme.md b/src/roadmaps/blockchain/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/blockchain/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/100-c-plus-plus.md b/src/roadmaps/computer-science/content/101-pick-a-language/100-c-plus-plus.md index 55eca784b..f4740d760 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/100-c-plus-plus.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/100-c-plus-plus.md @@ -2,6 +2,5 @@ C++ is a powerful general-purpose programming language. It can be used to develop operating systems, browsers, games, and so on. C++ supports different ways of programming like procedural, object-oriented, functional, and so on. This makes C++ powerful as well as flexible. -Free Content -Learn Cpp -C++ Reference +- [Learn Cpp](https://learncpp.com/) +- [C++ Reference](https://en.cppreference.com/) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/101-c.md b/src/roadmaps/computer-science/content/101-pick-a-language/101-c.md index 805d012ad..2e44ecec2 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/101-c.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/101-c.md @@ -2,7 +2,7 @@ C is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted CPUs. -Learn C - W3Schools -Learn C - Tutorials Point -C Programming Tutorial for Beginners -Learn C Programming with Dr. Chuck +- [Learn C - W3Schools](https://www.w3schools.com/c/) +- [Learn C - Tutorials Point](https://www.tutorialspoint.com/cprogramming/index.htm) +- [C Programming Tutorial for Beginners](https://www.youtube.com/watch?v=KJgsSFOSQv0) +- [Learn C Programming with Dr. Chuck](https://www.youtube.com/watch?v=j-_s8f5K30I) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/102-java.md b/src/roadmaps/computer-science/content/101-pick-a-language/102-java.md index bf4c6750a..51e7b401e 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/102-java.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/102-java.md @@ -9,8 +9,8 @@ description='Click to check the detailed Java Roadmap.' 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 -Java Website -Codeacademy - Free Course -W3 Schools Tutorials -Java Crash Course +- [Java Roadmap](/java) +- [Java Website](https://www.java.com/) +- [Codeacademy - Free Course](https://www.codecademy.com/learn/learn-java) +- [W3 Schools Tutorials](https://www.w3schools.com/java/) +- [Java Crash Course](https://www.youtube.com/watch?v=eIrMbAQSU34) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/103-python.md b/src/roadmaps/computer-science/content/101-pick-a-language/103-python.md index 47179847a..7b08eb56a 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/103-python.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/103-python.md @@ -8,14 +8,14 @@ description='Click to check the detailed Python Roadmap.' 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, procedural or object-oriented programmatic ways. -Free Content -Python Website -Python Getting Started -Automate the Boring Stuff -FreeCodeCamp.org - How to Learn Python ? -Python principles - Python basics -W3Schools - Python Tutorial -Python Crash Course -Codecademy - Learn Python 2 -An Introduction to Python for Non-Programmers -Getting Started with Python and InfluxDB +- [Python Roadmap](/python) +- [Python Website](https://www.python.org/) +- [Python Getting Started](https://www.python.org/about/gettingstarted/) +- [Automate the Boring Stuff](https://automatetheboringstuff.com/) +- [FreeCodeCamp.org - How to Learn Python ? ](https://www.freecodecamp.org/news/how-to-learn-python/) +- [Python principles - Python basics](https://pythonprinciples.com/) +- [W3Schools - Python Tutorial ](https://www.w3schools.com/python/) +- [Python Crash Course](https://ehmatthes.github.io/pcc/) +- [Codecademy - Learn Python 2](https://www.codecademy.com/learn/learn-python) +- [An Introduction to Python for Non-Programmers](https://thenewstack.io/an-introduction-to-python-for-non-programmers/) +- [Getting Started with Python and InfluxDB](https://thenewstack.io/getting-started-with-python-and-influxdb/) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/104-go.md b/src/roadmaps/computer-science/content/101-pick-a-language/104-go.md index 58599560b..786f0195e 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/104-go.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/104-go.md @@ -9,11 +9,11 @@ description='Click to check the detailed Go Roadmap.' 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 -A Tour of Go – Go Basics -Go Reference Documentation -Go by Example - annotated example programs -Learn Go | Codecademy -W3Schools Go Tutorial -Making a RESTful JSON API in Go -Go, the Programming Language of the Cloud +- [Go Roadmap](/golang) +- [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) +- [Go Reference Documentation](https://go.dev/doc/) +- [Go by Example - annotated example programs](https://gobyexample.com/) +- [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) +- [W3Schools Go Tutorial ](https://www.w3schools.com/go/) +- [Making a RESTful JSON API in Go](https://thenewstack.io/make-a-restful-json-api-go/) +- [Go, the Programming Language of the Cloud](https://thenewstack.io/go-the-programming-language-of-the-cloud/) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/105-c-sharp.md b/src/roadmaps/computer-science/content/101-pick-a-language/105-c-sharp.md index 631df31ca..f08f0c241 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/105-c-sharp.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/105-c-sharp.md @@ -2,8 +2,7 @@ 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 -C# Learning Path -C# on W3 schools -Introduction to C# -C# tutorials +- [C# Learning Path](https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-35129-website) +- [C# on W3 schools](https://www.w3schools.com/cs/index.php) +- [Introduction to C#](https://docs.microsoft.com/en-us/shows/CSharp-101/?WT.mc_id=Educationalcsharp-c9-scottha) +- [C# tutorials](https://www.youtube.com/watch?v=gfkTfcpWqAY&list=PLTjRvDozrdlz3_FPXwb6lX_HoGXa09Yef) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/106-rust.md b/src/roadmaps/computer-science/content/101-pick-a-language/106-rust.md index 0e45b54bc..5c26cbc59 100644 --- a/src/roadmaps/computer-science/content/101-pick-a-language/106-rust.md +++ b/src/roadmaps/computer-science/content/101-pick-a-language/106-rust.md @@ -2,8 +2,7 @@ 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 -The Rust Programming Language - online book -Rust by Example - collection of runnable examples -Rust vs. Go: Why They’re Better Together -Rust by the Numbers: The Rust Programming Language in 2021 +- [The Rust Programming Language - online book](https://doc.rust-lang.org/book/) +- [Rust by Example - collection of runnable examples](https://doc.rust-lang.org/stable/rust-by-example/index.html) +- [Rust vs. Go: Why They’re Better Together](https://thenewstack.io/rust-vs-go-why-theyre-better-together/) +- [Rust by the Numbers: The Rust Programming Language in 2021](https://thenewstack.io/rust-by-the-numbers-the-rust-programming-language-in-2021/) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/index.md b/src/roadmaps/computer-science/content/101-pick-a-language/index.md new file mode 100644 index 000000000..c546f5981 --- /dev/null +++ b/src/roadmaps/computer-science/content/101-pick-a-language/index.md @@ -0,0 +1,17 @@ +# Pick a Language + +You need to pick a programming language to learn the Computer Science concepts. My personal recommendation would be to pick C++ or C and the reason for that is: + +* They allow you to deal with pointers and memory allocation/deallocation, so you feel the data structures and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific, but when you're learning how these low-level data structures are built, it's great to feel close to the metal. +* You will be able to find a lot of resources for the topics listed in this roadmap using C or C++. You can find a lot of resources for Python and Java, but they are not as abundant as C++ and C. + +Given below is the list of resources; pick ones relevant to the language of your choice. + +- [Learn C++ - W3Schools](https://www.w3schools.com/cpp/) +- [Learn C++ - Tutorials Point](https://www.tutorialspoint.com/cplusplus/index.htm) +- [C++ Programming Course - Beginner to Advanced](https://www.youtube.com/watch?v=8jLOx1hD3_o) +- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) +- [Learn C - W3Schools](https://www.w3schools.com/c/) +- [Learn C - Tutorials Point](https://www.tutorialspoint.com/cprogramming/index.htm) +- [C Programming Tutorial for Beginners](https://www.youtube.com/watch?v=KJgsSFOSQv0) +- [Learn C Programming with Dr. Chuck](https://www.youtube.com/watch?v=j-_s8f5K30I) diff --git a/src/roadmaps/computer-science/content/101-pick-a-language/readme.md b/src/roadmaps/computer-science/content/101-pick-a-language/readme.md deleted file mode 100644 index b935c679f..000000000 --- a/src/roadmaps/computer-science/content/101-pick-a-language/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# Pick a Language - -You need to pick a programming language to learn the Computer Science concepts. My personal recommendation would be to pick C++ or C and the reason for that is: - -* They allow you to deal with pointers and memory allocation/deallocation, so you feel the data structures and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific, but when you're learning how these low-level data structures are built, it's great to feel close to the metal. -* You will be able to find a lot of resources for the topics listed in this roadmap using C or C++. You can find a lot of resources for Python and Java, but they are not as abundant as C++ and C. - -Given below is the list of resources; pick ones relevant to the language of your choice. - -Free Content -Learn C++ - W3Schools -Learn C++ - Tutorials Point -C++ Programming Course - Beginner to Advanced -C++ Tutorial for Beginners - Full Course - -Learn C - W3Schools -Learn C - Tutorials Point -C Programming Tutorial for Beginners -Learn C Programming with Dr. Chuck diff --git a/src/roadmaps/computer-science/content/102-data-structures/100-array.md b/src/roadmaps/computer-science/content/102-data-structures/100-array.md index 52bbf1619..1b593cab0 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/100-array.md +++ b/src/roadmaps/computer-science/content/102-data-structures/100-array.md @@ -2,9 +2,8 @@ Arrays store elements in contiguous memory locations, resulting in easily calculable addresses for the elements stored and this allows faster access to an element at a specific index. -Free Content -Array Data Structure | Illustrated Data Structures -Array Data Structure - Coursera -UC Berkeley CS61B - Linear and Multi-Dim Arrays (Start watching from 15m 32s) -Dynamic Arrays - Coursera -Jagged Arrays +- [Array Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=QJNwK2uJyGs) +- [Array Data Structure - Coursera](https://www.coursera.org/lecture/data-structures/arrays-OsBSF) +- [UC Berkeley CS61B - Linear and Multi-Dim Arrays (Start watching from 15m 32s)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) +- [Dynamic Arrays - Coursera](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV) +- [Jagged Arrays](https://www.youtube.com/watch?v=1jtrQqYpt7g) diff --git a/src/roadmaps/computer-science/content/102-data-structures/101-linked-list.md b/src/roadmaps/computer-science/content/102-data-structures/101-linked-list.md index 9c59d8dab..0f98b29a7 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/101-linked-list.md +++ b/src/roadmaps/computer-science/content/102-data-structures/101-linked-list.md @@ -2,13 +2,12 @@ Arrays store elements in contiguous memory locations, resulting in easily calculable addresses for the elements stored and this allows faster access to an element at a specific index. Linked lists are less rigid in their storage structure and elements are usually not stored in contiguous locations, hence they need to be stored with additional tags giving a reference to the next element. This difference in the data storage scheme decides which data structure would be more suitable for a given situation. -Free Content -Linked List Data Structure | Illustrated Data Structures -Linked Lists in 4 minutes -Singly Linked Lists -CS 61B Lecture 7: Linked Lists I -CS 61B Lecture 7: Linked Lists II -Core: Linked Lists vs Arrays -In the Real World: Linked Lists vs Arrays -Why you should avoid Linked Lists? -Doubly Linked Lists +- [Linked List Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=odW9FU8jPRQ) +- [Linked Lists in 4 minutes](https://www.youtube.com/watch?v=F8AbOfQwl1c) +- [Singly Linked Lists](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK) +- [CS 61B Lecture 7: Linked Lists I](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0) +- [CS 61B Lecture 7: Linked Lists II](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w) +- [Core: Linked Lists vs Arrays](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9) +- [In the Real World: Linked Lists vs Arrays](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd) +- [Why you should avoid Linked Lists?](https://www.youtube.com/watch?v=YQs6IC-vgmo) +- [Doubly Linked Lists](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD) diff --git a/src/roadmaps/computer-science/content/102-data-structures/102-stack.md b/src/roadmaps/computer-science/content/102-data-structures/102-stack.md index d790ac09e..ddf11ad0e 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/102-stack.md +++ b/src/roadmaps/computer-science/content/102-data-structures/102-stack.md @@ -2,10 +2,9 @@ Stack is a linear collection of items where items are inserted and removed in a particular order. Stack is also called a LIFO Data Structure because it follows the "Last In First Out" principle i.e. the item that is inserted in the last is the one that is taken out first. -Free Content -Stack Data Structure | Illustrated Data Structures -Stack in 3 minutes -Stack Data Structure +- [Stack Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=I5lq6sCuABE) +- [Stack in 3 minutes](https://www.youtube.com/watch?v=KcT3aVgrrpU) +- [Stack Data Structure](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ) diff --git a/src/roadmaps/computer-science/content/102-data-structures/103-queue.md b/src/roadmaps/computer-science/content/102-data-structures/103-queue.md index 74fa74d78..93b738db1 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/103-queue.md +++ b/src/roadmaps/computer-science/content/102-data-structures/103-queue.md @@ -2,10 +2,9 @@ Queue is a linear collection of items where items are inserted and removed in a particular order. The queue is also called a FIFO Data Structure because it follows the "First In, First Out" principle i.e., the item that is inserted in the first is the one that is taken out first. -Free Content -Queue Data Structure | Illustrated Data Structures -Queue in 3 Minutes -Queues - Coursera -Circular Buffer - Wikipedia +- [Queue Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=mDCi1lXd9hc) +- [Queue in 3 Minutes](https://www.youtube.com/watch?v=D6gu-_tmEpQ) +- [Queues - Coursera](https://www.coursera.org/lecture/data-structures/queues-EShpq) +- [Circular Buffer - Wikipedia](https://en.wikipedia.org/wiki/Circular_buffer) diff --git a/src/roadmaps/computer-science/content/102-data-structures/104-hash-table.md b/src/roadmaps/computer-science/content/102-data-structures/104-hash-table.md index 1650112d2..55c9a3887 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/104-hash-table.md +++ b/src/roadmaps/computer-science/content/102-data-structures/104-hash-table.md @@ -2,13 +2,12 @@ Hash Table, Map, HashMap, Dictionary or Associative are all the names of the same data structure. It is one of the most commonly used data structures. -Free Content -Hash Table | Illustrated Data Structures -Hash Table in 4 Minutes -Hashing with Chaining -Table Doubling, Karp-Rabin -Open Addressing, Cryptographic Hashing -PyCon 2010: The Mighty Dictionary -PyCon 2017: The Dictionary Even Mightier -(Advanced) Randomization: Universal & Perfect Hashing -(Advanced) Perfect hashing +- [Hash Table | Illustrated Data Structures](https://www.youtube.com/watch?v=jalSiaIi8j4) +- [Hash Table in 4 Minutes](https://youtu.be/knV86FlSXJ8) +- [Hashing with Chaining](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9) +- [Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=10) +- [Open Addressing, Cryptographic Hashing](https://www.youtube.com/watch?v=rvdJDijO2Ro&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=11) +- [PyCon 2010: The Mighty Dictionary](https://www.youtube.com/watch?v=C4Kc8xzcA68) +- [PyCon 2017: The Dictionary Even Mightier](https://www.youtube.com/watch?v=66P5FMkWoVU) +- [(Advanced) Randomization: Universal & Perfect Hashing](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) +- [(Advanced) Perfect hashing](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/100-binary-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/100-binary-tree.md index 12e8f79de..b4f254a49 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/100-binary-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/100-binary-tree.md @@ -2,5 +2,5 @@ A binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child. -Binary Trees - Part 1 -Binary Trees - Part 2 +- [Binary Trees - Part 1](https://www.youtube.com/watch?v=76dhtgZt38A&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=9) +- [Binary Trees - Part 2](https://www.youtube.com/watch?v=U1JYwHcFfso&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=10) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/101-binary-search-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/101-binary-search-tree.md index d990f619b..49978e1c2 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/101-binary-search-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/101-binary-search-tree.md @@ -2,13 +2,12 @@ A binary search tree, also called an ordered or sorted binary tree, is a rooted binary tree data structure with the key of each internal node being greater than all the keys in the respective node's left subtree and less than the ones in its right subtree. -Free Content -Tree | Illustrated Data Structures -Binary Search Trees - Coursera -Binary Search Trees - MIT -Binary Search Tree Implementation in C++ -BST implementation - memory allocation in stack and heap -Find Min and Max Element in Binary Search Tree -Check if Given Tree is Binary Search Tree or Not -Delete an Element from Binary Search Tree -Inorder Successor in a binary search tree +- [Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU) +- [Binary Search Trees - Coursera](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction) +- [Binary Search Trees - MIT](https://www.youtube.com/watch?v=76dhtgZt38A) +- [Binary Search Tree Implementation in C++](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29) +- [BST implementation - memory allocation in stack and heap](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=30) +- [Find Min and Max Element in Binary Search Tree](https://www.youtube.com/watch?v=Ut90klNN264&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31) +- [Check if Given Tree is Binary Search Tree or Not](https://www.youtube.com/watch?v=yEwSGhSsT0U&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36) +- [Delete an Element from Binary Search Tree](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=37) +- [Inorder Successor in a binary search tree](https://www.youtube.com/watch?v=5cPbNCrdotA&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=38) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/102-full-binary-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/102-full-binary-tree.md index ffa3332b6..5941ad89c 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/102-full-binary-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/102-full-binary-tree.md @@ -2,6 +2,5 @@ A full Binary tree is a special type of binary tree in which every parent node/internal node has either two or no children. It is also known as a proper binary tree. -Free Content -Full Binary Tree -Types of Binary Tree +- [Full Binary Tree](https://www.programiz.com/dsa/full-binary-tree) +- [Types of Binary Tree](https://www.geeksforgeeks.org/types-of-binary-tree/) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/103-complete-binary-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/103-complete-binary-tree.md index 337c9c631..e641f3f58 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/103-complete-binary-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/103-complete-binary-tree.md @@ -2,6 +2,5 @@ A complete binary tree is a special type of binary tree where all the levels of the tree are filled completely except the lowest level nodes which are filled from as left as possible. -Free Content -Complete Binary Tree - Geeks for Geeks -Complete Binary Tree - Programiz +- [Complete Binary Tree - Geeks for Geeks](https://www.geeksforgeeks.org/complete-binary-tree) +- [Complete Binary Tree - Programiz](https://www.programiz.com/dsa/complete-binary-tree) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/104-balanced-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/104-balanced-tree.md index df933dd60..c039f29ac 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/104-balanced-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/104-balanced-tree.md @@ -2,5 +2,4 @@ A balanced binary tree, also referred to as a height-balanced binary tree, is defined as a binary tree in which the height of the left and right subtree of any node differ by not more than 1. -Free Content -Balanced Binary Tree +- [Balanced Binary Tree](https://www.programiz.com/dsa/balanced-binary-tree) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/105-unbalanced-tree.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/105-unbalanced-tree.md index 31d0aaea5..4f48d1399 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/105-unbalanced-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/105-unbalanced-tree.md @@ -2,5 +2,4 @@ An unbalanced binary tree is one that is not balanced. -Free Content -Balanced Binary Tree +- [Balanced Binary Tree](https://www.programiz.com/dsa/balanced-binary-tree) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/index.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/index.md new file mode 100644 index 000000000..1263002a5 --- /dev/null +++ b/src/roadmaps/computer-science/content/102-data-structures/105-tree/index.md @@ -0,0 +1,6 @@ +# Tree + +A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value and a list of references to other nodes (the “children”). + +- [Tree Data Structure - Geeks for Geeks](https://www.geeksforgeeks.org/introduction-to-tree-data-structure-and-algorithm-tutorials/) +- [Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU) diff --git a/src/roadmaps/computer-science/content/102-data-structures/105-tree/readme.md b/src/roadmaps/computer-science/content/102-data-structures/105-tree/readme.md deleted file mode 100644 index b2b31e90f..000000000 --- a/src/roadmaps/computer-science/content/102-data-structures/105-tree/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Tree - -A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value and a list of references to other nodes (the “children”). - -Free Content -Tree Data Structure - Geeks for Geeks -Tree | Illustrated Data Structures diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/100-directed-graph.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/100-directed-graph.md index 1074b7dc6..d339dde80 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/106-graph/100-directed-graph.md +++ b/src/roadmaps/computer-science/content/102-data-structures/106-graph/100-directed-graph.md @@ -2,5 +2,4 @@ A directed graph is graph, i.e., a set of objects (called vertices or nodes) that are connected together, where all the edges are directed from one vertex to another. A directed graph is sometimes called a digraph or a directed network. In contrast, a graph where the edges are bidirectional is called an undirected graph. -Free Content -Directed Graph +- [Directed Graph](https://en.wikipedia.org/wiki/Directed_graph) diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/101-undirected-graph.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/101-undirected-graph.md index 3bf335de0..53045658b 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/106-graph/101-undirected-graph.md +++ b/src/roadmaps/computer-science/content/102-data-structures/106-graph/101-undirected-graph.md @@ -2,5 +2,4 @@ An undirected graph is graph, i.e., a set of objects (called vertices or nodes) that are connected together, where all the edges are bidirectional. An undirected graph is sometimes called an undirected network. In contrast, a graph where the edges point in a direction is called a directed graph. -Free Content -Undirected Graph +- [Undirected Graph](https://mathinsight.org/definition/undirected_graph) diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/102-spanning-tree.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/102-spanning-tree.md index 36c34592e..f128e5c91 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/106-graph/102-spanning-tree.md +++ b/src/roadmaps/computer-science/content/102-data-structures/106-graph/102-spanning-tree.md @@ -2,8 +2,7 @@ A spanning tree is a subset of Graph G, which has all the vertices covered with minimum possible number of edges. Hence, a spanning tree does not have cycles and it cannot be disconnected.. -Free Content -Spanning Tree -CSE373 2020 - Lecture 13 - Minimum Spanning Trees -CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) -Greedy Algorithms: Minimum Spanning Tree +- [Spanning Tree](https://www.tutorialspoint.com/data_structures_algorithms/spanning_tree.htm) +- [CSE373 2020 - Lecture 13 - Minimum Spanning Trees](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13) +- [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (cont)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14) +- [Greedy Algorithms: Minimum Spanning Tree](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/103-graph-representation.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/103-graph-representation.md index a9aa2737f..3075f64c6 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/106-graph/103-graph-representation.md +++ b/src/roadmaps/computer-science/content/102-data-structures/106-graph/103-graph-representation.md @@ -6,6 +6,5 @@ The adjacency matrix is a 2D array of size `V x V` where `V` is the number of ve Adjacency list is an array of vectors. Size of the array is equal to the number of vertices. Let the array be `array[]`. An entry `array[i]` represents the list of vertices adjacent to the ith vertex. This representation can also be used to represent a weighted graph. The weights of edges can be represented as lists of pairs. -Free Content -Adjacency Matrix - Graph Representation -Adjacency List - Graph Representation +- [Adjacency Matrix - Graph Representation](https://www.programiz.com/dsa/graph-adjacency-matrix) +- [Adjacency List - Graph Representation](https://www.programiz.com/dsa/graph-adjacency-list) diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/index.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/index.md new file mode 100644 index 000000000..7226ebdf0 --- /dev/null +++ b/src/roadmaps/computer-science/content/102-data-structures/106-graph/index.md @@ -0,0 +1,14 @@ +# Graph + +Graphs in data structures are non-linear data structures made up of a finite number of nodes or vertices and the edges that connect them. Graphs in data structures are used to address real-world problems in which it represents the problem area as a network like telephone networks, circuit networks, and social networks. + +- [Graph Data Structure](https://www.simplilearn.com/tutorials/data-structure-tutorial/graphs-in-data-structure) +- [Graph Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=0sQE8zKhad0) +- [CSE373 2020 - Lecture 10 - Graph Data Structures](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10) +- [CSE373 2020 - Lecture 11 - Graph Traversal](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11) +- [CSE373 2020 - Lecture 12 - Depth First Search](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12) +- [CSE373 2020 - Lecture 13 - Minimum Spanning Trees](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13) +- [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (cont)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14) +- [CSE373 2020 - Lecture 15 - Graph Algorithms (cont 2)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15) +- [6.006 Single-Source Shortest Paths Problem](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) + diff --git a/src/roadmaps/computer-science/content/102-data-structures/106-graph/readme.md b/src/roadmaps/computer-science/content/102-data-structures/106-graph/readme.md deleted file mode 100644 index 291962fca..000000000 --- a/src/roadmaps/computer-science/content/102-data-structures/106-graph/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# Graph - -Graphs in data structures are non-linear data structures made up of a finite number of nodes or vertices and the edges that connect them. Graphs in data structures are used to address real-world problems in which it represents the problem area as a network like telephone networks, circuit networks, and social networks. - -Free Content -Graph Data Structure -Graph Data Structure | Illustrated Data Structures -CSE373 2020 - Lecture 10 - Graph Data Structures -CSE373 2020 - Lecture 11 - Graph Traversal -CSE373 2020 - Lecture 12 - Depth First Search -CSE373 2020 - Lecture 13 - Minimum Spanning Trees -CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) -CSE373 2020 - Lecture 15 - Graph Algorithms (con't 2) - -6.006 Single-Source Shortest Paths Problem - diff --git a/src/roadmaps/computer-science/content/102-data-structures/107-heap.md b/src/roadmaps/computer-science/content/102-data-structures/107-heap.md index 389aa5d31..0c6782e4d 100644 --- a/src/roadmaps/computer-science/content/102-data-structures/107-heap.md +++ b/src/roadmaps/computer-science/content/102-data-structures/107-heap.md @@ -2,8 +2,7 @@ Heap is a tree-based data structure that follows the properties of a complete binary tree and is either a Min Heap or a Max Heap. -Free Content -Heap | Illustrated Data Structures -Priority Queue - Introduction -Heaps and Heap Sort -CS 61B Lecture 24: Priority Queues +- [Heap | Illustrated Data Structures](https://www.youtube.com/watch?v=F_r0sJ1RqWk) +- [Priority Queue - Introduction](https://www.coursera.org/lecture/data-structures/introduction-2OpTs) +- [Heaps and Heap Sort](https://www.youtube.com/watch?v=B7hVxCmfPtM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=5) +- [CS 61B Lecture 24: Priority Queues](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE) diff --git a/src/roadmaps/computer-science/content/102-data-structures/index.md b/src/roadmaps/computer-science/content/102-data-structures/index.md new file mode 100644 index 000000000..3a80b5b24 --- /dev/null +++ b/src/roadmaps/computer-science/content/102-data-structures/index.md @@ -0,0 +1,7 @@ +# Data Structures + +As the name indicates itself, a **Data Structure** is a way of organizing the data in the **memory** so that it can be used efficiently. Some common data structures are array, linked list, stack, hashtable, queue, tree, heap, and graph. + +- [What are Data Structures?](https://www.geeksforgeeks.org/data-structures) +- [ Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial) +- [Data Structures Illustrated](https://www.youtube.com/watch?v=9rhT3P1MDHk&list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY) diff --git a/src/roadmaps/computer-science/content/102-data-structures/readme.md b/src/roadmaps/computer-science/content/102-data-structures/readme.md deleted file mode 100644 index c0cba14ad..000000000 --- a/src/roadmaps/computer-science/content/102-data-structures/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Data Structures - -As the name indicates itself, a **Data Structure** is a way of organizing the data in the **memory** so that it can be used efficiently. Some common data structures are array, linked list, stack, hashtable, queue, tree, heap, and graph. - -Free Content -What are Data Structures? - Data Structures and Algorithms -Data Structures Illustrated diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/100-big-o-notation.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/100-big-o-notation.md index e42b36ad7..f0fc56716 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/100-big-o-notation.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/100-big-o-notation.md @@ -2,9 +2,8 @@ Big O Notation describes, how well an algorithm scales with the input size. It is used to describe the worst case scenario of an algorithm. It is used to compare algorithms and to determine which algorithm is better. -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations -moviesCS 61B Lecture 19: Asymptotic Analysis -Big Oh Notation (and Omega and Theta) +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) +- [moviesCS 61B Lecture 19: Asymptotic Analysis](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98) +- [Big Oh Notation (and Omega and Theta)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN&index=3) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/101-big-theta-notation.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/101-big-theta-notation.md index 58b3d7561..cae2e79c5 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/101-big-theta-notation.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/101-big-theta-notation.md @@ -2,6 +2,5 @@ While Big O Notation refers to the upper bound of a function, Big Theta Notation refers to the exact bound of a function. Big Theta Notation is used to describe the exact growth rate of a function. It is denoted by the symbol Θ. -Free Content -Big Oh Notation (and Omega and Theta) -Asymptotic Notation - CS50 +- [Big Oh Notation (and Omega and Theta)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN&index=3) +- [Asymptotic Notation - CS50](https://www.youtube.com/watch?v=iOq5kSKqeR4) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/102-big-omega-notation.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/102-big-omega-notation.md index 9e34149b8..5cf1c4bbf 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/102-big-omega-notation.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/102-big-omega-notation.md @@ -2,6 +2,5 @@ Big Omega notation is used to describe the lower bound of a function. It is the opposite of Big O notation. While Big O is used to describe the worst case scenario of an algorithm, Big Omega is used to describe the best case scenario of an algorithm. -Free Content -Big Oh Notation (and Omega and Theta) -Asymptotic Notation - CS50 +- [Big Oh Notation (and Omega and Theta)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN&index=3) +- [Asymptotic Notation - CS50](https://www.youtube.com/watch?v=iOq5kSKqeR4) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/100-constant.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/100-constant.md index f14d0cee5..055b1a228 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/100-constant.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/100-constant.md @@ -2,6 +2,5 @@ Constant time algorithms are the simplest and most efficient algorithms. They are algorithms that always take the same amount of time to run, regardless of the size of the input. This is the best case scenario for an algorithm, and is the goal of all algorithms. -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/101-logarithmic.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/101-logarithmic.md index 02431f090..b310ee273 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/101-logarithmic.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/101-logarithmic.md @@ -2,6 +2,5 @@ Logarithmic complexity algorithms are the second fastest algorithms. They are faster than linear algorithms, but slower than constant algorithms. -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/102-linear.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/102-linear.md index 3c8425ff6..2c5561a7c 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/102-linear.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/102-linear.md @@ -2,6 +2,5 @@ Linear algorithms are algorithms that have a runtime that is directly proportional to the size of the input. This means that the runtime of the algorithm will increase linearly with the size of the input. For example, if the input size is 10, the runtime will be 10 times the runtime of the algorithm when the input size is 1. If the input size is 100, the runtime will be 100 times the runtime of the algorithm when the input size is 1. -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/103-polynomial.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/103-polynomial.md index 33ea677c1..66de26745 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/103-polynomial.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/103-polynomial.md @@ -9,6 +9,5 @@ def polynomial_algorithm(n): print(i, j) ``` -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/104-exponential.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/104-exponential.md index f36a35ada..49a5d8bd7 100644 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/104-exponential.md +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/104-exponential.md @@ -11,6 +11,5 @@ def exponential(n): As you can see, the algorithm's runtime grows exponentially. For each additional input, the algorithm will take twice as long to run. -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/index.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/index.md new file mode 100644 index 000000000..2c6c2c118 --- /dev/null +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/index.md @@ -0,0 +1,16 @@ +# Common Runtimes + +Given below is the list of common algorithmic runtimes. The runtimes are listed in ascending order of their complexity. + +* O(1) - Constant +* O(log n) - Logarithmic +* O(n) - Linear +* O(n log n) - Linearithmic +* O(n^2) - Quadratic +* O(n^3) - Cubic +* O(2^n) - Exponential +* O(n!) - Factorial +* O(n^n) - Polynomial + +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/readme.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/readme.md deleted file mode 100644 index 3f6b63c58..000000000 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/103-common-runtimes/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# Common Runtimes - -Given below is the list of common algorithmic runtimes. The runtimes are listed in ascending order of their complexity. - -* O(1) - Constant -* O(log n) - Logarithmic -* O(n) - Linear -* O(n log n) - Linearithmic -* O(n^2) - Quadratic -* O(n^3) - Cubic -* O(2^n) - Exponential -* O(n!) - Factorial -* O(n^n) - Polynomial - -Free Content -Big O Notation — Calculating Time Complexity -Big O Notations diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/index.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/index.md new file mode 100644 index 000000000..d3e0af1a5 --- /dev/null +++ b/src/roadmaps/computer-science/content/103-asymptotic-notation/index.md @@ -0,0 +1,14 @@ +# Asymptotic Notation + +The efficiency of an algorithm depends on the amount of time, storage and other resources required to execute the algorithm. The efficiency is measured with the help of asymptotic notations. + +An algorithm may not have the same performance for different types of inputs. With the increase in the input size, the performance will change. + +The study of change in performance of the algorithm with the change in the order of the input size is defined as asymptotic analysis. + +- [Asymptotic Analysis: Big-O Notation and More](https://www.programiz.com/dsa/asymptotic-notations) +- [Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8) +- [Big O Notation in 5 Minutes](https://www.youtube.com/watch?v=__vX2sjlpXU) +- [Asymptotic Notation - CS50](https://www.youtube.com/watch?v=iOq5kSKqeR4) +- [CS 61B Lecture 19: Asymptotic Analysis](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98) +- [Big-O Cheat Sheet](https://www.bigocheatsheet.com/) diff --git a/src/roadmaps/computer-science/content/103-asymptotic-notation/readme.md b/src/roadmaps/computer-science/content/103-asymptotic-notation/readme.md deleted file mode 100644 index 9065c74b6..000000000 --- a/src/roadmaps/computer-science/content/103-asymptotic-notation/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# Asymptotic Notation - -The efficiency of an algorithm depends on the amount of time, storage and other resources required to execute the algorithm. The efficiency is measured with the help of asymptotic notations. - -An algorithm may not have the same performance for different types of inputs. With the increase in the input size, the performance will change. - -The study of change in performance of the algorithm with the change in the order of the input size is defined as asymptotic analysis. - -Free Content - -Asymptotic Analysis: Big-O Notation and More -Big O Notation — Calculating Time Complexity -Big O Notation in 5 Minutes -Asymptotic Notation - CS50 -CS 61B Lecture 19: Asymptotic Analysis -Big-O Cheat Sheet diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/100-bubble-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/100-bubble-sort.md index fe72d0b05..e0a84c409 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/100-bubble-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/100-bubble-sort.md @@ -2,7 +2,6 @@ Bubble sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements and swaps them if they are in the wrong order. The pass through the list is repeated until the list is sorted. -Free Content -Bubble Sort -Analyzing Bubble Sort -Bubble sort in 2 minutes +- [Bubble Sort](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB) +- [Analyzing Bubble Sort](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB) +- [Bubble sort in 2 minutes](https://youtu.be/xli_FI7CuzA) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/101-selection-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/101-selection-sort.md index 02659e8f4..d8d511845 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/101-selection-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/101-selection-sort.md @@ -2,6 +2,5 @@ Selection sort is a sorting algorithm that selects the smallest unsorted item in the list and swaps it with index 0, then finds the next smallest and places it into index 1 and so on. -Free Content -Selection Sort in 3 Minutes -Selection Sort +- [Selection Sort in 3 Minutes](https://www.youtube.com/watch?v=g-PGLbMth_g) +- [Selection Sort](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md index 88536afc3..88865d7f7 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md @@ -2,7 +2,6 @@ Insertion sort is a simple sorting algorithm that builds the final sorted array one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. -Free Content -Insertion Sort — MIT -Insertion Sort in 3 Minutes -Insertion Sort Algorithm +- [Insertion Sort — MIT](https://www.youtube.com/watch?v=Kg4bqzAqRBM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=4) +- [Insertion Sort in 3 Minutes](https://www.youtube.com/watch?v=JU767SDMDvA) +- [Insertion Sort Algorithm](https://www.programiz.com/dsa/insertion-sort) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md index d92404c1d..3a3d94d72 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md @@ -2,13 +2,12 @@ Heap sort is a comparison based sorting algorithm. It is similar to selection sort where we first find the maximum element and place the maximum element at the end. We repeat the same process for remaining element. -Free Content -Heap Sort Algorithm -Heap Sort Algorithm - Geeks for Geeks -Heap Sort in 4 Minutes -Heap Sort Algorithm - MIT -Heap Sort Algorithm -Lecture 4 - Heaps and Heap Sort +- [Heap Sort Algorithm](https://www.programiz.com/dsa/heap-sort) +- [Heap Sort Algorithm - Geeks for Geeks](https://www.geeksforgeeks.org/heap-sort/) +- [Heap Sort in 4 Minutes](https://www.youtube.com/watch?v=2DmK_H7IdTo) +- [Heap Sort Algorithm - MIT](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291s) +- [Heap Sort Algorithm](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO) +- [Lecture 4 - Heaps and Heap Sort](https://www.youtube.com/watch?v=B7hVxCmfPtM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=5) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md index 27c0b79d3..15ae6b715 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md @@ -2,9 +2,8 @@ Quick Sort is a divide and conquer algorithm. It picks an element as pivot and partitions the given array around the picked pivot. There are many different versions of quickSort that pick pivot in different ways. -Free Content -Quick Sort Algorithm -Quick Sort Algorithm - Geeks for Geeks -Quick Sort in 4 Minutes -Quick Sort Implementaiton in C -Quick Sort Implementation in Python +- [Quick Sort Algorithm](https://www.programiz.com/dsa/quick-sort) +- [Quick Sort Algorithm - Geeks for Geeks](https://www.geeksforgeeks.org/quick-sort/) +- [Quick Sort in 4 Minutes](https://www.youtube.com/watch?v=Hoixgm4-P4M&feature=youtu.be) +- [Quick Sort Implementaiton in C](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c) +- [Quick Sort Implementation in Python](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md index 2b5e3f5ce..bddb462e3 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md @@ -2,8 +2,7 @@ Merge sort is a divide and conquer algorithm. It divides the input array into two halves, calls itself for the two halves, and then merges the two sorted halves. The `merge()` function is used for merging two halves. The `merge(arr, l, m, r)` is key process that assumes that `arr[l..m]` and `arr[m+1..r]` are sorted and merges the two sorted sub-arrays into one. -Free Content -Merge Sort - Geeks for Geeks -Merge Sort Algorithm -Merge Sort for Linked Lists -Merge Sort in 3 Minutes +- [Merge Sort - Geeks for Geeks](https://www.geeksforgeeks.org/merge-sort/) +- [Merge Sort Algorithm](https://www.programiz.com/dsa/merge-sort) +- [Merge Sort for Linked Lists](https://www.geeksforgeeks.org/merge-sort-for-linked-list/) +- [Merge Sort in 3 Minutes](https://www.youtube.com/watch?v=4VqmGXwpLqc) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/index.md new file mode 100644 index 000000000..9caa6b53e --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/index.md @@ -0,0 +1,10 @@ +# Sorting Algorithms + +Sorting algorithms are used to sort data in a collection. Sorting is a very common task in computer science, and it is also a very common interview question. There are many different ways to sort data, and different algorithms have different advantages and disadvantages. + +Learn about the sorting algorithms and know the best case/worst case, average complexity of each. Also, learn about the stability of sorting algorithms. + +- [CS 61B Lecture 29: Sorting I](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I) +- [CS 61B Lecture 30: Sorting II](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk) +- [CS 61B Lecture 32: Sorting III](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc) +- [CS 61B Lecture 33: Sorting V](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/readme.md deleted file mode 100644 index 7ccd552ca..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/100-sorting-algorithms/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Sorting Algorithms - -Sorting algorithms are used to sort data in a collection. Sorting is a very common task in computer science, and it is also a very common interview question. There are many different ways to sort data, and different algorithms have different advantages and disadvantages. - -Learn about the sorting algorithms and know the best case/worst case, average complexity of each. Also, learn about the stability of sorting algorithms. - -Free Content -CS 61B Lecture 29: Sorting I -CS 61B Lecture 30: Sorting II -CS 61B Lecture 32: Sorting III -CS 61B Lecture 33: Sorting V diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md index 4b59d6502..0c49b4a62 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md @@ -2,6 +2,5 @@ Pre-order traversal is a tree traversal algorithm that visits the root node first, then recursively traverses the left subtree, followed by the right subtree. -Free Content -Tree | Illustrated Data Structures -Tree Traversals (Inorder, Preorder and Postorder) +- [Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU) +- [Tree Traversals (Inorder, Preorder and Postorder)](https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md index a3d5dc22a..d8091b23b 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md @@ -2,6 +2,5 @@ In-order traversal is a tree traversal algorithm that visits the left subtree, the root, and then the right subtree. This is the most common way to traverse a binary search tree. It is also used to create a sorted list of nodes in a binary search tree. -Free Content -Tree | Illustrated Data Structures -Tree Traversals (Inorder, Preorder and Postorder) +- [Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU) +- [Tree Traversals (Inorder, Preorder and Postorder)](https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md index 1321adcf7..3158aedc9 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md @@ -2,6 +2,5 @@ Post-order traversal is a type of tree traversal that visits the left subtree, then the right subtree, and finally the root node. This is the opposite of pre-order traversal, which visits the root node first, then the left subtree, and finally the right subtree. -Free Content -Tree | Illustrated Data Structures -Tree Traversals (Inorder, Preorder and Postorder) +- [Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU) +- [Tree Traversals (Inorder, Preorder and Postorder)](https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md index 4dab44530..5240d0e79 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md @@ -2,7 +2,6 @@ Breadth first search is a graph traversal algorithm that starts at the root node and explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level. -Free Content -BFS and DFS in a Binary Tree -Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java -Breadth-first search in 4 minutes +- [BFS and DFS in a Binary Tree](https://www.youtube.com/watch?v=uWL6FJhq5fM) +- [Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java](https://www.digitalocean.com/community/tutorials/breadth-first-search-depth-first-search-bfs-dfs) +- [Breadth-first search in 4 minutes](https://www.youtube.com/watch?v=HZ5YTanv5QE) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md index 9d816c33d..73bede71b 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md @@ -2,7 +2,6 @@ Depth first search is a graph traversal algorithm that starts at a root node and explores as far as possible along each branch before backtracking. -Free Content -BFS and DFS in a Binary Tree -Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java -Depth First Search in 4 Minutes +- [BFS and DFS in a Binary Tree](https://www.youtube.com/watch?v=uWL6FJhq5fM) +- [Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java](https://www.digitalocean.com/community/tutorials/breadth-first-search-depth-first-search-bfs-dfs) +- [Depth First Search in 4 Minutes](https://www.youtube.com/watch?v=Urx87-NMm6c) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/index.md similarity index 100% rename from src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md rename to src/roadmaps/computer-science/content/104-common-algorithms/101-tree-algorithms/index.md diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/100-breadth-first-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/100-breadth-first-search.md index 5ab70072e..eef2dc9b0 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/100-breadth-first-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/100-breadth-first-search.md @@ -2,7 +2,6 @@ Breadth first search for a graph is a way to traverse the graph. It starts at the root node and explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level. -Free Content -Breadth First Search or BFS for a Graph -Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 +- [Breadth First Search or BFS for a Graph](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/) +- [Graph Algorithms II - DFS, BFS, Kruskals Algorithm, Union Find Data Structure - Lecture 7](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/101-depth-first-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/101-depth-first-search.md index 83929477e..fa1207b9b 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/101-depth-first-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/101-depth-first-search.md @@ -2,5 +2,4 @@ Depth first search is a graph traversal algorithm that starts at a root node and explores as far as possible along each branch before backtracking. -Free Content -Depth First Search or DFS for a Graph +- [Depth First Search or DFS for a Graph](https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/?ref=lbp) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/102-bellman-fords-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/102-bellman-fords-algorithm.md index 19118d9b8..ca6c679ea 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/102-bellman-fords-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/102-bellman-fords-algorithm.md @@ -2,6 +2,5 @@ Bellman ford's algorithm is a graph algorithm that finds the shortest path from a source vertex to all other vertices in a graph. It is a dynamic programming algorithm that uses a bottom-up approach to find the shortest path. It is similar to Dijkstra's algorithm but it can handle negative weights. It is also similar to Floyd-Warshall's algorithm but it can handle negative weights and it is faster than Floyd-Warshall's algorithm. -Free Content -Bellman-Ford - MIT -Bellman-Ford in 4 Minutes +- [Bellman-Ford - MIT](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare) +- [Bellman-Ford in 4 Minutes](https://www.youtube.com/watch?v=9PHkk0UavIM) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/103-dijkstras-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/103-dijkstras-algorithm.md index bc9dcfc90..fa265b139 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/103-dijkstras-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/103-dijkstras-algorithm.md @@ -2,6 +2,5 @@ Dijkstra's algorithm is a graph traversal algorithm that finds the shortest path between two nodes in a graph. It is a weighted graph algorithm, meaning that each edge in the graph has a weight associated with it. The algorithm works by finding the shortest path from the starting node to all other nodes in the graph. It does this by keeping track of the distance from the starting node to each node, and then choosing the node with the shortest distance from the starting node to visit next. It then updates the distance of each node from the starting node, and repeats the process until all nodes have been visited. -Free Content -Dijkstra's Algorithm - MIT -Dijkstra's Algorithm in 3 Minutes +- [Dijkstras Algorithm - MIT](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare) +- [Dijkstras Algorithm in 3 Minutes](https://www.youtube.com/watch?v=_lHSawdgXpI) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/104-a-star-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/104-a-star-algorithm.md index 51f17cf66..8624c8dde 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/104-a-star-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/104-a-star-algorithm.md @@ -2,6 +2,5 @@ A* is a graph traversal algorithm that is used to find the shortest path between two nodes in a graph. It is a modified version of Dijkstra's algorithm that uses heuristics to find the shortest path. It is used in pathfinding and graph traversal. -Free Content -A* Search Algorithm - Wikipedia -A* Pathfinding (E01: algorithm explanation) +- [A* Search Algorithm - Wikipedia](https://en.wikipedia.org/wiki/A*_search_algorithm) +- [A* Pathfinding (E01: algorithm explanation)](https://www.youtube.com/watch?v=-L-WgKMFuhE) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/index.md new file mode 100644 index 000000000..266ca2d57 --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/index.md @@ -0,0 +1,12 @@ +# Graph Algorithms + +Graphs in data structures are non-linear data structures made up of a finite number of nodes or vertices and the edges that connect them. Graphs in data structures are used to address real-world problems in which it represents the problem area as a network like telephone networks, circuit networks, and social networks. + +- [Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prims Algorithm - Lecture 6](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [Graph Algorithms II - DFS, BFS, Kruskals Algorithm, Union Find Data Structure - Lecture 7](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7) +- [Graph Algorithms III: Shortest Path - Lecture 8](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8) +- [Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9) +- [Strongly Connected Components Kosarajus Algorithm Graph Algorithm](https://www.youtube.com/watch?v=RpgcYiky7uw) +- [Shortest Path Algorithms (playlist) in 16 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw) +- [Minimum Spanning Trees (playlist) in 4 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV) +- [Algorithms on Graphs - Coursera](https://www.coursera.org/learn/algorithms-on-graphs) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/readme.md deleted file mode 100644 index 2d43eb0ed..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Graph Algorithms - -Graphs in data structures are non-linear data structures made up of a finite number of nodes or vertices and the edges that connect them. Graphs in data structures are used to address real-world problems in which it represents the problem area as a network like telephone networks, circuit networks, and social networks. - -Free Content -Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 -Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 -Graph Algorithms III: Shortest Path - Lecture 8 -Graph Alg. IV: Intro to geometric algorithms - Lecture 9 -Strongly Connected Components Kosaraju's Algorithm Graph Algorithm -Shortest Path Algorithms (playlist) in 16 minutes -Minimum Spanning Trees (playlist) in 4 minutes -Algorithms on Graphs - Coursera diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/100-dijkstras-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/100-dijkstras-algorithm.md index 58a222cd2..880fa5aa1 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/100-dijkstras-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/100-dijkstras-algorithm.md @@ -2,7 +2,6 @@ Dijkstra's algorithm is a greedy algorithm that finds the shortest path between two nodes in a graph. It is a very common algorithm used in computer science and is used in many applications such as GPS navigation, network routing, and finding the shortest path in a maze. -Free Content -Dijkstra's Algorithm in 3 Minutes -Dijkstra's Algorithm - MIT -Speeding Up Dijkstra's Algorithm - MIT +- [Dijkstras Algorithm in 3 Minutes](https://www.youtube.com/watch?v=_lHSawdgXpI) +- [Dijkstras Algorithm - MIT](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare) +- [Speeding Up Dijkstras Algorithm - MIT](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/101-huffman-coding.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/101-huffman-coding.md index 9aba55b6a..40a37a9c4 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/101-huffman-coding.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/101-huffman-coding.md @@ -2,7 +2,6 @@ Huffman coding is a lossless data compression algorithm. The idea is to assign variable-length codes to input characters, lengths of the assigned codes are based on the frequencies of corresponding characters. The most frequent character gets the smallest code and the least frequent character gets the largest code. -Free Content -Huffman Coding -Huffman Coding | Greedy Algo-3 -Huffman Coding - Greedy Method +- [Huffman Coding](https://www.programiz.com/dsa/huffman-coding) +- [Huffman Coding | Greedy Algo-3](https://www.geeksforgeeks.org/huffman-coding-greedy-algo-3/) +- [Huffman Coding - Greedy Method](https://www.youtube.com/watch?v=co4_ahEDCho) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/102-kruskas-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/102-kruskas-algorithm.md index 6e67267d4..7419fd2c2 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/102-kruskas-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/102-kruskas-algorithm.md @@ -2,6 +2,5 @@ Kruskal's algorithm is a greedy algorithm that finds a minimum spanning tree for a connected weighted graph. It is a minimum spanning tree algorithm that takes a graph as input and finds the subset of the edges of that graph which form a tree that includes every vertex, where the total weight of all the edges in the tree is minimized. If the graph is not connected, then it finds a minimum spanning forest (a minimum spanning tree for each connected component). -Free Content -Kruskal's Algorithm in 2 Minutes -Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 +- [Kruskals Algorithm in 2 Minutes](https://www.youtube.com/watch?v=71UQH7Pr9kU) +- [Graph Algorithms II - DFS, BFS, Kruskals Algorithm, Union Find Data Structure - Lecture 7](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/103-ford-fulkerson-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/103-ford-fulkerson-algorithm.md index bf9482c81..762031052 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/103-ford-fulkerson-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/103-ford-fulkerson-algorithm.md @@ -2,7 +2,6 @@ Ford Fulkerson Algorithm is a greedy algorithm that is used to find the maximum flow in a flow network. It is also known as the Edmonds-Karp Algorithm. -Free Content -Ford-Fulkerson in 5 minutes -Ford-Fulkerson Algorithm for Maximum Flow Problem -Ford-Fulkerson Algorithm +- [Ford-Fulkerson in 5 minutes](https://www.youtube.com/watch?v=Tl90tNtKvxs) +- [Ford-Fulkerson Algorithm for Maximum Flow Problem](https://www.geeksforgeeks.org/ford-fulkerson-algorithm-for-maximum-flow-problem/) +- [Ford-Fulkerson Algorithm](https://www.programiz.com/dsa/ford-fulkerson-algorithm) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/104-prims-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/104-prims-algorithm.md index 2e6f14622..9827439ae 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/104-prims-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/104-prims-algorithm.md @@ -2,7 +2,6 @@ Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph. A minimum spanning tree is a subset of the edges of a connected, edge-weighted undirected graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight. A minimum spanning tree for a weighted undirected graph is also called a minimum weight spanning tree or minimum cost spanning tree. -Free Content -Graph Algorithms I - Topological Sorting, Prim's Algorithm - Lecture 6 -Prim’s Minimum Spanning Tree (MST) | Greedy Algo-5 -Prim's Algorithm +- [Graph Algorithms I - Topological Sorting, Prims Algorithm - Lecture 6](https://www.youtube.com/watch?v=i_AQT_XfvD8&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7) +- [Prim’s Minimum Spanning Tree (MST) | Greedy Algo-5](https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/) +- [Prims Algorithm](https://www.programiz.com/dsa/prim-algorithm) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/index.md new file mode 100644 index 000000000..718364e4e --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/index.md @@ -0,0 +1,9 @@ +# Greedy Algorithms + +Greedy algorithms are a type of algorithm that always makes the choice that seems to be the best at that moment. This means that it makes a locally-optimal choice in the hope that this choice will lead to a globally-optimal solution. + +- [Greedy Algorithms - Geeks for Geeks](https://www.geeksforgeeks.org/greedy-algorithms/) +- [Greedy Algorithms - Programiz](https://www.programiz.com/dsa/greedy-algorithm) +- [Greedy Algorithms Tutorial – Solve Coding Challenges](https://www.youtube.com/watch?v=bC7o8P_Ste4) + + diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/readme.md deleted file mode 100644 index efd97c45e..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/104-greedy-algorithms/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Greedy Algorithms - -Greedy algorithms are a type of algorithm that always makes the choice that seems to be the best at that moment. This means that it makes a locally-optimal choice in the hope that this choice will lead to a globally-optimal solution. - -Free Content -Greedy Algorithms - Geeks for Geeks -Greedy Algorithms - Programiz -Greedy Algorithms Tutorial – Solve Coding Challenges - - diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/100-finding-hamiltonian-paths.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/100-finding-hamiltonian-paths.md index 98f7003c3..e708d0210 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/100-finding-hamiltonian-paths.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/100-finding-hamiltonian-paths.md @@ -2,8 +2,7 @@ Hamiltonian paths are paths that visit every node in a graph exactly once. They are named after the famous mathematician [Hamilton](https://en.wikipedia.org/wiki/William_Rowan_Hamilton). Hamiltonian paths are a special case of [Hamiltonian cycles](https://en.wikipedia.org/wiki/Hamiltonian_cycle), which are cycles that visit every node in a graph exactly once. -Free Content -Hamiltonian Path -Hamiltonian Cycle | Backtracking-6 -Hamiltonian Paths and Cycles -Hamiltonian Paths - Lecture 7 +- [Hamiltonian Path](https://www.hackerearth.com/practice/algorithms/graphs/hamiltonian-path/tutorial/) +- [Hamiltonian Cycle | Backtracking-6](https://www.geeksforgeeks.org/hamiltonian-cycle-backtracking-6/) +- [Hamiltonian Paths and Cycles](https://medium.com/stamatics-iit-kanpur/hamiltonian-paths-and-cycles-4f233bfbc53a) +- [Hamiltonian Paths - Lecture 7](https://people.csail.mit.edu/virgi/6.s078/lecture17.pdf) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/101-solving-n-queen-problem.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/101-solving-n-queen-problem.md index dc1b033ea..b378e4a22 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/101-solving-n-queen-problem.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/101-solving-n-queen-problem.md @@ -2,7 +2,6 @@ N Queen Problem is a famous problem in Computer Science. It is a problem of placing n queens on an n x n chessboard such that no two queens attack each other. The problem is to find all possible solutions to the problem. -Free Content -N-Queens problem using backtracking in Java/C++ -N Queen Problem | Backtracking-3 -6.1 N Queens Problem using Backtracking +- [N-Queens problem using backtracking in Java/C++](https://www.digitalocean.com/community/tutorials/n-queens-problem-java-c-plus-plus) +- [N Queen Problem | Backtracking-3](https://www.geeksforgeeks.org/n-queen-problem-backtracking-3/) +- [6.1 N Queens Problem using Backtracking](https://www.youtube.com/watch?v=xFv_Hl4B83A) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/102-maze-solving-problem.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/102-maze-solving-problem.md index f51c0adb6..a05b382b8 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/102-maze-solving-problem.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/102-maze-solving-problem.md @@ -2,8 +2,7 @@ Maze solving problem is a classic problem in computer science. It is a problem where we have to find a path from a starting point to an end point in a maze. The maze is represented as a grid of cells. Each cell can be either a wall or a path. The path cells are connected to each other. The starting point and the end point are also given. The goal is to find a path from the starting point to the end point. The path can only be made up of path cells. The path cannot go through the wall cells. -Free Content -Maze Solving Algorithms -Maze Solving Algorithms -Maze Solving - Computerphile -Python Maze Solving Tutorial (Using Recursion) +- [Maze Solving Algorithms](https://github.com/john-science/mazelib/blob/main/docs/MAZE_SOLVE_ALGOS.md) +- [Maze Solving Algorithms](https://kidscodecs.com/maze-solving-algorithms/) +- [Maze Solving - Computerphile](https://www.youtube.com/watch?v=rop0W4QDOUI) +- [Python Maze Solving Tutorial (Using Recursion)](https://www.youtube.com/watch?v=XP94WC_XnZc) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/103-knights-tour-problem.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/103-knights-tour-problem.md index 81b09ba50..163678d8c 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/103-knights-tour-problem.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/103-knights-tour-problem.md @@ -2,8 +2,7 @@ Knight's Tour Problem is a problem where we have to find a path for a knight to visit all the cells of a chessboard without visiting any cell twice. -Free Content -The Knight’s tour problem | Backtracking-1 -Knight's Tour -Knight's Tour Proble -Backtracking: The Knight’s Tour Problem +- [The Knight’s tour problem | Backtracking-1](https://www.geeksforgeeks.org/the-knights-tour-problem-backtracking-1/) +- [Knights Tour](https://bradfieldcs.com/algos/graphs/knights-tour/) +- [Knights Tour Proble](https://www.codesdope.com/course/algorithms-knights-tour-problem/) +- [Backtracking: The Knight’s Tour Problem](https://www.codingninjas.com/codestudio/library/backtracking-the-knights-tour-problem) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/index.md new file mode 100644 index 000000000..c8ced642f --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/index.md @@ -0,0 +1,6 @@ +# Back Tracking Algorithm + +Back tracking algorithms are used to solve problems that can be broken down into smaller sub-problems. The algorithm tries to solve each sub-problem and if it fails, it backtracks and tries to solve the sub-problem in a different way. + +- [Backtracking Algorithms](https://www.geeksforgeeks.org/backtracking-algorithms) +- [Backtracking Algorithm](https://www.programiz.com/dsa/backtracking-algorithm) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/readme.md deleted file mode 100644 index f2dab2dbd..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/105-back-tracking-algorithms/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Back Tracking Algorithm - -Back tracking algorithms are used to solve problems that can be broken down into smaller sub-problems. The algorithm tries to solve each sub-problem and if it fails, it backtracks and tries to solve the sub-problem in a different way. - -Free Content -Backtracking Algorithms -Backtracking Algorithm diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/106-robin-karp-algorithm.md b/src/roadmaps/computer-science/content/104-common-algorithms/106-robin-karp-algorithm.md index a69031e7f..9c9853c0b 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/106-robin-karp-algorithm.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/106-robin-karp-algorithm.md @@ -2,9 +2,8 @@ Rabin-Karp algorithm is a string searching algorithm that uses hashing to find any one of a set of pattern strings in a text. For strings of average length `n`, it performs in `O(n+m)` time with `O(m)` space, where `m` is the length of the pattern. It is often used in bioinformatics to search for DNA patterns. -Free Content -Rabin Karp's Algorithm -Optimization: Precomputation -Optimization: Implementation and Analysis -Lecture 9: Table Doubling, Karp-Rabin -Rolling Hashes, Amortized Analysis +- [Rabin Karps Algorithm](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw) +- [Optimization: Precomputation](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation) +- [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis) +- [Lecture 9: Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9) +- [Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=33) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/100-tail-recursion.md b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/100-tail-recursion.md index 1bf292136..16740dfa9 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/100-tail-recursion.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/100-tail-recursion.md @@ -2,6 +2,5 @@ Tail recursion is a special kind of recursion where the recursive call is the very last thing in the function. It's a function that does not do anything at all after recursing. -Free Content -What is tail recursion? Why is it so bad? -Tail Recursion +- [What is tail recursion? Why is it so bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad) +- [Tail Recursion](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/101-non-tail-recursion.md b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/101-non-tail-recursion.md index a89f9ed86..84d4f79c9 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/101-non-tail-recursion.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/101-non-tail-recursion.md @@ -4,8 +4,7 @@ Tail recursion is when a function can directly return the result of a recursive In “non-tail recursion”, there are outstanding operations after the recursive call, and the stack frame cannot be nuked. -Free Content -What is non-tail recursion? -Tail vs Non-Tail Recursion -Recursion (Solved Problem 1) -Types of Recursion (Part 2) | Tail & Non-tail Recursion +- [What is non-tail recursion?](https://www.quora.com/What-is-non-tail-recursion) +- [Tail vs Non-Tail Recursion](https://www.baeldung.com/cs/tail-vs-non-tail-recursion) +- [Recursion (Solved Problem 1)](https://www.youtube.com/watch?v=IVLUGb_gDDE) +- [Types of Recursion (Part 2) | Tail & Non-tail Recursion](https://www.youtube.com/watch?v=HIt_GPuD7wk) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/index.md new file mode 100644 index 000000000..7309f4ece --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/index.md @@ -0,0 +1,10 @@ +# Recursion + +Recursion is a method of solving problems where the solution depends on solutions to smaller instances of the same problem. A recursive algorithm must have a base case. A recursive algorithm calls itself, recursively. + +- [Recursion in 100 Seconds](https://www.youtube.com/watch?v=rf60MejMz3E) +- [Lecture 8 | Programming Abstractions (Stanford)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=9) +- [Lecture 9 | Programming Abstractions (Stanford)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=10) +- [Lecture 10 | Programming Abstractions (Stanford)](https://www.youtube.com/watch?v=NdF1QDTRkck&list=PLFE6E58F856038C69&index=11) +- [Lecture 11 | Programming Abstractions (Stanford)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=12) +- [5 Simple Steps for Solving Any Recursive Problem](https://www.youtube.com/watch?v=ngCos392W4w) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/readme.md deleted file mode 100644 index 85ab45126..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/107-recursion/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Recursion - -Recursion is a method of solving problems where the solution depends on solutions to smaller instances of the same problem. A recursive algorithm must have a base case. A recursive algorithm calls itself, recursively. - -Free Content -Recursion in 100 Seconds -Lecture 8 | Programming Abstractions (Stanford) -Lecture 9 | Programming Abstractions (Stanford) -Lecture 10 | Programming Abstractions (Stanford) -Lecture 11 | Programming Abstractions (Stanford) -5 Simple Steps for Solving Any Recursive Problem diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/100-binary-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/100-binary-search.md index cbb09f2b6..8214c4238 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/100-binary-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/100-binary-search.md @@ -2,8 +2,7 @@ Binary search is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array. -Free Content -Binary Search in 4 Minutes -Binary Search - CS50 -Binary Search - Khan Academy -Binary Search +- [Binary Search in 4 Minutes](https://www.youtube.com/watch?v=fDKIpRe8GW4&feature=youtu.be) +- [Binary Search - CS50](https://www.youtube.com/watch?v=D5SrAga1pno) +- [Binary Search - Khan Academy](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) +- [Binary Search](https://www.topcoder.com/thrive/articles/Binary%20Search) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/101-linear-search.md b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/101-linear-search.md index 2edae0cfa..0f0e0b18c 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/101-linear-search.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/101-linear-search.md @@ -2,5 +2,4 @@ Linear search is a very simple algorithm that is used to search for a value in an array. It sequentially checks each element of the array until a match is found or until all the elements have been searched. -Free Content -Linear Search Algorithm +- [Linear Search Algorithm](https://www.geeksforgeeks.org/linear-search/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/index.md new file mode 100644 index 000000000..837f67dca --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/index.md @@ -0,0 +1,6 @@ +# Search Algorithms + +Search algorithms are used to find a specific item in a collection of items. For example, if you have a list of names and you want to find a specific name, you can use a search algorithm to find that name. + +- [Searching Algorithms](https://www.geeksforgeeks.org/searching-algorithms/) +- [Search Algorithms – Linear Search and Binary Search](https://www.freecodecamp.org/news/search-algorithms-linear-and-binary-search-explained/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/readme.md deleted file mode 100644 index 685371060..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/108-search-algorithms/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Search Algorithms - -Search algorithms are used to find a specific item in a collection of items. For example, if you have a list of names and you want to find a specific name, you can use a search algorithm to find that name. - -Free Content -Searching Algorithms -Search Algorithms – Linear Search and Binary Search diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/100-lru-cache.md b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/100-lru-cache.md index ef3688d9d..2cef6b986 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/100-lru-cache.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/100-lru-cache.md @@ -2,7 +2,6 @@ LRU cache is a cache that evicts the least recently used item first. It is a very common cache algorithm. It is used in many places, such as in the browser cache, the database cache, and the cache of the operating system. -Free Content -The Magic of LRU Cache (100 Days of Google Dev) -Implementing LRU - Udacity -LeetCode | 146 LRU Cache | C++ | Explanation +- [The Magic of LRU Cache (100 Days of Google Dev)](https://www.youtube.com/watch?v=R5ON3iwx78M) +- [Implementing LRU - Udacity](https://www.youtube.com/watch?v=bq6N7Ym81iI) +- [LeetCode | 146 LRU Cache | C++ | Explanation](https://www.youtube.com/watch?v=8-FZRAjR7qU) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/101-lfu-cache.md b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/101-lfu-cache.md index 0b2334503..5661af4c6 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/101-lfu-cache.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/101-lfu-cache.md @@ -2,6 +2,5 @@ LFU Cache is a data structure that stores key-value pairs. It has a fixed size and when it is full, it removes the least frequently used key-value pair. It is a variation of the LRU Cache and is used in many applications such as caching web pages, caching database queries, and caching images. -Free Content -Least Frequently Used (LFU) Cache Implementation -1117. Data Structure - LFU Cache +- [Least Frequently Used (LFU) Cache Implementation](https://www.geeksforgeeks.org/least-frequently-used-lfu-cache-implementation/) +- [1117. Data Structure - LFU Cache](https://jojozhuang.github.io/algorithm/data-structure-lfu-cache/) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/102-mfu-cache.md b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/102-mfu-cache.md index c3b27dfe0..12ff708b8 100644 --- a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/102-mfu-cache.md +++ b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/102-mfu-cache.md @@ -2,6 +2,5 @@ MFU Cache is a variation of the LRU Cache. The difference is that instead of deleting the least recently used entry, the MFU Cache deletes the least frequently used entry. -Free Content -Comparison of MFU and LRU page replacement algorithms -Why does cache use Most Recently Used (MRU) algorithm as evict policy? +- [Comparison of MFU and LRU page replacement algorithms](https://stackoverflow.com/questions/13597246/comparison-of-mfu-and-lru-page-replacement-algorithms) +- [Why does cache use Most Recently Used (MRU) algorithm as evict policy?](https://stackoverflow.com/questions/5088128/why-does-cache-use-most-recently-used-mru-algorithm-as-evict-policy) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/index.md b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/index.md new file mode 100644 index 000000000..b4fdcddb4 --- /dev/null +++ b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/index.md @@ -0,0 +1,6 @@ +# Cache Algorithms + +Cache algorithms are used to manage the cache memory of a computer. Cache memory is a small amount of memory that is used to store data that is frequently accessed. This allows the computer to access the data faster than if it had to go to the main memory. Cache algorithms are used to determine which data should be stored in the cache memory and which data should be removed from the cache memory. + +- [Cache Replacement Algorithms: How To Efficiently Manage The Cache Storage](https://dev.to/satrobit/cache-replacement-algorithms-how-to-efficiently-manage-the-cache-storage-2ne1) +- [14. Caching and Cache-Efficient Algorithms](https://www.youtube.com/watch?v=xDKnMXtZKq8) diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/readme.md deleted file mode 100644 index 57f7c0503..000000000 --- a/src/roadmaps/computer-science/content/104-common-algorithms/109-cache-algorithms/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Cache Algorithms - -Cache algorithms are used to manage the cache memory of a computer. Cache memory is a small amount of memory that is used to store data that is frequently accessed. This allows the computer to access the data faster than if it had to go to the main memory. Cache algorithms are used to determine which data should be stored in the cache memory and which data should be removed from the cache memory. - -Free Content -Cache Replacement Algorithms: How To Efficiently Manage The Cache Storage -14. Caching and Cache-Efficient Algorithms diff --git a/src/roadmaps/computer-science/content/104-common-algorithms/readme.md b/src/roadmaps/computer-science/content/104-common-algorithms/index.md similarity index 100% rename from src/roadmaps/computer-science/content/104-common-algorithms/readme.md rename to src/roadmaps/computer-science/content/104-common-algorithms/index.md diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md index 880f159b3..61db4254a 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md @@ -2,9 +2,8 @@ Suffix arrays are a data structure that allows us to quickly find all the suffixes of a string in lexicographical order. This is useful for many problems, such as finding the longest common substring between two strings, or finding the number of distinct substrings of a string. -Free Content -Suffix Array | Set 1 (Introduction) -Suffix array introduction -Advanced Data Structures: Suffix Arrays -Suffix arrays: building -Suffix Arrays - Coursera +- [Suffix Array | Set 1 (Introduction)](https://www.geeksforgeeks.org/suffix-array-set-1-introduction/) +- [Suffix array introduction](https://www.youtube.com/watch?v=zqKlL3ZpTqs) +- [Advanced Data Structures: Suffix Arrays](https://www.youtube.com/watch?v=IzMxbboPcqQ) +- [Suffix arrays: building](https://www.youtube.com/watch?v=ZWlbhBjjwyA) +- [Suffix Arrays - Coursera](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md index 12546b634..7639da6f2 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md @@ -2,5 +2,4 @@ Searching pattern in text is a very common task in computer science. It is used in many applications like spell checkers, text editors, and many more. -Free Content -Search Pattern in Text +- [Search Pattern in Text](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md index 5ae8fb342..0b4407f55 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md @@ -2,7 +2,6 @@ Brute force search is a simple algorithm that checks for a pattern in a string by comparing each character of the string with the first character of the pattern. If the first character matches, it then compares the next character of the string with the next character of the pattern and so on. If all the characters of the pattern match, then the pattern is found. If the first character does not match, then the algorithm compares the second character of the string with the first character of the pattern and so on. -Free Content -A beginner guide to Brute Force Algorithm for substring search -Brute Force Algorithm in Cybersecurity and String Search -Brute-Force Substring Search +- [A beginner guide to Brute Force Algorithm for substring search](https://nulpointerexception.com/2019/02/10/a-beginner-guide-to-brute-force-algorithm-for-substring-search/) +- [Brute Force Algorithm in Cybersecurity and String Search](https://www.baeldung.com/cs/brute-force-cybersecurity-string-search) +- [Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md index d67ac568c..625cf98b6 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md @@ -7,8 +7,7 @@ Knuth morris pratt is a string searching algorithm that uses a precomputed array * If the characters match, increment the index of both the string and substring. * If the characters don't match, increment the index of the string by the value of the prefix function at the index of the substring. -Free Content -KMP Algorithm for Pattern Searching -The Knuth-Morris-Pratt (KMP)Algorithm -9.1 Knuth-Morris-Pratt KMP String Matching Algorithm -Knuth-Morris Pratt +- [KMP Algorithm for Pattern Searching](https://www.geeksforgeeks.org/kmp-algorithm-for-pattern-searching/) +- [The Knuth-Morris-Pratt (KMP)Algorithm](https://www.javatpoint.com/daa-knuth-morris-pratt-algorithm) +- [9.1 Knuth-Morris-Pratt KMP String Matching Algorithm](https://www.youtube.com/watch?v=V5-7GzOfADQ) +- [Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md index 1e8c607af..a692b6020 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md @@ -2,7 +2,6 @@ Boyer Moore algorithm is a string searching algorithm that is used to find the index of a substring in a string. It is a very efficient algorithm that is used in many applications. It is used in text editors, compilers, and many other applications. -Free Content -Boyer Moore Algorithm for Pattern Searching -The Boyer-Moore Algorithm -Boyer Moore Algorithm +- [Boyer Moore Algorithm for Pattern Searching](https://www.geeksforgeeks.org/boyer-moore-algorithm-for-pattern-searching/) +- [The Boyer-Moore Algorithm](https://www.javatpoint.com/daa-boyer-moore-algorithm) +- [Boyer Moore Algorithm](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md index a69031e7f..9c9853c0b 100644 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md @@ -2,9 +2,8 @@ Rabin-Karp algorithm is a string searching algorithm that uses hashing to find any one of a set of pattern strings in a text. For strings of average length `n`, it performs in `O(n+m)` time with `O(m)` space, where `m` is the length of the pattern. It is often used in bioinformatics to search for DNA patterns. -Free Content -Rabin Karp's Algorithm -Optimization: Precomputation -Optimization: Implementation and Analysis -Lecture 9: Table Doubling, Karp-Rabin -Rolling Hashes, Amortized Analysis +- [Rabin Karps Algorithm](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw) +- [Optimization: Precomputation](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation) +- [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis) +- [Lecture 9: Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9) +- [Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=33) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/index.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/index.md new file mode 100644 index 000000000..c56114e12 --- /dev/null +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/index.md @@ -0,0 +1,10 @@ +# Substring Search + +Substring search is the problem of finding a substring in a string. This is a very common problem in computer science, and there are many algorithms for solving it. + +- [Introduction to Substring Search](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG) +- [What is the fastest substring search algorithm?](https://stackoverflow.com/questions/3183582/what-is-the-fastest-substring-search-algorithm) +- [Check if a string is substring of another](https://www.geeksforgeeks.org/check-string-substring-another/) +- [Anagram Substring Search (Or Search for all permutations)](https://www.geeksforgeeks.org/anagram-substring-search-search-permutations/) +- [Substring Search - Exercises](https://algs4.cs.princeton.edu/53substring/) + diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md deleted file mode 100644 index 4c3ffe636..000000000 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Substring Search - -Substring search is the problem of finding a substring in a string. This is a very common problem in computer science, and there are many algorithms for solving it. - -Free Content -Introduction to Substring Search -What is the fastest substring search algorithm? -Check if a string is substring of another -Anagram Substring Search (Or Search for all permutations) -Substring Search - Exercises - diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/index.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/index.md new file mode 100644 index 000000000..d534a7dd6 --- /dev/null +++ b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/index.md @@ -0,0 +1,7 @@ +# String Search and Manipulations + +String search and manipulation is a very important topic in computer science. It is used in many different applications, such as searching or replacing a specific pattern, word or character in a string. + +- [String-searching algorithm](https://en.wikipedia.org/wiki/String-searching_algorithm) +- [Pattern Searching](https://www.geeksforgeeks.org/algorithms-gq/pattern-searching/) +- [Applications of String Matching Algorithms](https://www.geeksforgeeks.org/applications-of-string-matching-algorithms/) diff --git a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/readme.md b/src/roadmaps/computer-science/content/105-string-search-and-manipulations/readme.md deleted file mode 100644 index d37e88372..000000000 --- a/src/roadmaps/computer-science/content/105-string-search-and-manipulations/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# String Search and Manipulations - -String search and manipulation is a very important topic in computer science. It is used in many different applications, such as searching or replacing a specific pattern, word or character in a string. - -Free Content -String-searching algorithm -Pattern Searching -Applications of String Matching Algorithms diff --git a/src/roadmaps/computer-science/content/106-bitwise-operators.md b/src/roadmaps/computer-science/content/106-bitwise-operators.md index b3328fad5..1b6f9b9dd 100644 --- a/src/roadmaps/computer-science/content/106-bitwise-operators.md +++ b/src/roadmaps/computer-science/content/106-bitwise-operators.md @@ -2,7 +2,6 @@ Bitwise operators are used to perform operations on individual bits of a number. They are used in cryptography, image processing, and other applications. -Free Content -Bit Manipulation -Binary: Plusses & Minuses (Why We Use Two's Complement) - Computerphile -Algorithms: Bit Manipulation +- [Bit Manipulation](https://www.youtube.com/watch?v=7jkIUgLC29I) +- [Binary: Plusses & Minuses (Why We Use Twos Complement) - Computerphile](https://www.youtube.com/watch?v=lKTsv6iVxV4) +- [Algorithms: Bit Manipulation](https://www.youtube.com/watch?v=NLKQEOgBAnw) diff --git a/src/roadmaps/computer-science/content/107-floating-point-numbers.md b/src/roadmaps/computer-science/content/107-floating-point-numbers.md index 7c583e01c..5b3dc21ae 100644 --- a/src/roadmaps/computer-science/content/107-floating-point-numbers.md +++ b/src/roadmaps/computer-science/content/107-floating-point-numbers.md @@ -2,6 +2,5 @@ Floating point numbers are numbers that have a decimal point in them. They are used to represent real numbers. For example, 3.14 is a floating point number. 3 is not a floating point number because it does not have a decimal point in it. -Free Content -Representation of Floating Point Numbers - 1 -Why 0.1 + 0.2 != 0.3? | Floating Point Math +- [Representation of Floating Point Numbers - 1](https://www.youtube.com/watch?v=ji3SfClm8TU) +- [Why 0.1 + 0.2 != 0.3? | Floating Point Math](https://www.youtube.com/watch?v=RIiq4tTt6rI) diff --git a/src/roadmaps/computer-science/content/108-endianess/100-big-endian.md b/src/roadmaps/computer-science/content/108-endianess/100-big-endian.md index 4ec75b779..becbcd94d 100644 --- a/src/roadmaps/computer-science/content/108-endianess/100-big-endian.md +++ b/src/roadmaps/computer-science/content/108-endianess/100-big-endian.md @@ -2,6 +2,5 @@ Big endian is the most common type of endianness. In this type, the most significant byte is stored at the lowest memory address. This means that the most significant byte is stored first and the least significant byte is stored last. -Free Content -Little and Big Endian Mystery -Lecture 22. Big Endian and Little Endian +- [Little and Big Endian Mystery](https://www.geeksforgeeks.org/little-and-big-endian-mystery/) +- [Lecture 22. Big Endian and Little Endian](https://www.youtube.com/watch?v=T1C9Kj_78ek) diff --git a/src/roadmaps/computer-science/content/108-endianess/101-little-endian.md b/src/roadmaps/computer-science/content/108-endianess/101-little-endian.md index 7eae0efed..fd58ea4f4 100644 --- a/src/roadmaps/computer-science/content/108-endianess/101-little-endian.md +++ b/src/roadmaps/computer-science/content/108-endianess/101-little-endian.md @@ -2,7 +2,6 @@ Little Endian is a way of storing data in memory. It is the opposite of Big Endian. In Little Endian, the least significant byte is stored first. In Big Endian, the most significant byte is stored first. -Free Content -What is Endianness? Big-Endian vs Little-Endian Explained with Examples -Big Endian vs Little Endian.mp4 -Endianness Explained With an Egg - Computerphile +- [What is Endianness? Big-Endian vs Little-Endian Explained with Examples](https://www.freecodecamp.org/news/what-is-endianness-big-endian-vs-little-endian/) +- [Big Endian vs Little Endian.mp4](https://www.youtube.com/watch?v=JrNF0KRAlyo) +- [Endianness Explained With an Egg - Computerphile](https://www.youtube.com/watch?v=NcaiHcBvDR4) diff --git a/src/roadmaps/computer-science/content/108-endianess/index.md b/src/roadmaps/computer-science/content/108-endianess/index.md new file mode 100644 index 000000000..24b9b5230 --- /dev/null +++ b/src/roadmaps/computer-science/content/108-endianess/index.md @@ -0,0 +1,7 @@ +# Endianess + +Endianess is the order in which bytes are stored in memory. The two most common types of endianess are big endian and little endian. Big endian stores the most significant byte first, while little endian stores the least significant byte first. + +- [What is Endianness? Big-Endian vs Little-Endian Explained with Examples](https://www.freecodecamp.org/news/what-is-endianness-big-endian-vs-little-endian/) +- [Big Endian vs Little Endian.mp4](https://www.youtube.com/watch?v=JrNF0KRAlyo) +- [Endianness Explained With an Egg - Computerphile](https://www.youtube.com/watch?v=NcaiHcBvDR4) diff --git a/src/roadmaps/computer-science/content/108-endianess/readme.md b/src/roadmaps/computer-science/content/108-endianess/readme.md deleted file mode 100644 index 6678ec4c4..000000000 --- a/src/roadmaps/computer-science/content/108-endianess/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Endianess - -Endianess is the order in which bytes are stored in memory. The two most common types of endianess are big endian and little endian. Big endian stores the most significant byte first, while little endian stores the least significant byte first. - -Free Content -What is Endianness? Big-Endian vs Little-Endian Explained with Examples -Big Endian vs Little Endian.mp4 -Endianness Explained With an Egg - Computerphile diff --git a/src/roadmaps/computer-science/content/109-character-encodings/100-unicode.md b/src/roadmaps/computer-science/content/109-character-encodings/100-unicode.md index 1c580de4c..c061f01f8 100644 --- a/src/roadmaps/computer-science/content/109-character-encodings/100-unicode.md +++ b/src/roadmaps/computer-science/content/109-character-encodings/100-unicode.md @@ -2,6 +2,5 @@ Unicode is a standard for encoding characters. It is a superset of ASCII, which means that ASCII is a subset of Unicode. Unicode is a 16-bit encoding, which means that it can encode 2^16 = 65536 characters. This is a lot more than ASCII, which can only encode 128 characters. -Free Content -How Unicode Works: What Every Developer Needs to Know About Strings and 🦄 -Characters, Symbols and the Unicode Miracle - Computerphile +- [How Unicode Works: What Every Developer Needs to Know About Strings and 🦄](https://deliciousbrains.com/how-unicode-works/) +- [Characters, Symbols and the Unicode Miracle - Computerphile](https://www.youtube.com/watch?v=MijmeoH9LT4) diff --git a/src/roadmaps/computer-science/content/109-character-encodings/101-ascii.md b/src/roadmaps/computer-science/content/109-character-encodings/101-ascii.md index 2b8f890a6..fed87beb4 100644 --- a/src/roadmaps/computer-science/content/109-character-encodings/101-ascii.md +++ b/src/roadmaps/computer-science/content/109-character-encodings/101-ascii.md @@ -2,6 +2,5 @@ ASCII is a character encoding standard for electronic communication. It was developed from telegraph code and uses 7 bits to represent 128 different characters. The first 32 characters are non-printable control characters used to control devices like printers and typewriters. The remaining 96 characters are printable and include the letters of the English alphabet, numbers, punctuation, and various symbols. -Free Content -Must Know about Character Encodings -Character Encoding +- [Must Know about Character Encodings](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/) +- [Character Encoding](https://cs.lmu.edu/~ray/notes/charenc/) diff --git a/src/roadmaps/computer-science/content/109-character-encodings/readme.md b/src/roadmaps/computer-science/content/109-character-encodings/index.md similarity index 58% rename from src/roadmaps/computer-science/content/109-character-encodings/readme.md rename to src/roadmaps/computer-science/content/109-character-encodings/index.md index a54615281..da449e96c 100644 --- a/src/roadmaps/computer-science/content/109-character-encodings/readme.md +++ b/src/roadmaps/computer-science/content/109-character-encodings/index.md @@ -2,6 +2,5 @@ Character encodings are a way of representing characters as numbers. They are used to store and transmit text. The most common character encoding is ASCII, which is a 7-bit encoding. This means that each character is represented by a number between 0 and 127. The ASCII character set contains 128 characters, including letters, numbers, punctuation, and control characters. The ASCII character set is a subset of the Unicode character set, which is a 16-bit encoding. Unicode is a superset of ASCII, so ASCII characters can be represented by Unicode. Unicode is the most common character encoding used on the web. -Free Content -Must Know about Character Encodings -Character Encoding +- [Must Know about Character Encodings](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/) +- [Character Encoding](https://cs.lmu.edu/~ray/notes/charenc/) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/100-class-diagrams.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/100-class-diagrams.md index 69dd03b4e..e1b22500a 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/100-class-diagrams.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/100-class-diagrams.md @@ -2,7 +2,6 @@ Class Diagrams are used to model the static structure of a system. They are used to show the classes, their attributes, operations (or methods), and the relationships between objects. -Free Content -UML Class Diagram Tutorial -UML Class Diagram Tutorial +- [UML Class Diagram Tutorial](https://www.youtube.com/watch?v=UI6lqHOVHic) +- [UML Class Diagram Tutorial](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLfoY2ARMh0hC2FcJKP5voAKCpk6PZXSd5&index=2) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/102-usecase-diagrams.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/102-usecase-diagrams.md index 577ea9def..a4418b95a 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/102-usecase-diagrams.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/102-usecase-diagrams.md @@ -8,7 +8,6 @@ A usecase is a task that the system performs. Usecases are represented by an ell A usecase diagram is a diagram that shows the actors and the usecases of the system. The diagram is represented by a rectangle that contains the name of the system inside it. The actors are represented by rectangles and the usecases are represented by ellipses. -Free Content -UML Use Case Diagram Tutorial -What is Use Case Diagram? -UML Use Case Diagram Tutorial +- [UML Use Case Diagram Tutorial](https://www.lucidchart.com/pages/uml-use-case-diagram) +- [What is Use Case Diagram?](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-use-case-diagram/) +- [UML Use Case Diagram Tutorial](https://www.youtube.com/watch?v=zid-MVo7M-E) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/103-activity-diagrams.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/103-activity-diagrams.md index 22a3af0f9..886a8c75c 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/103-activity-diagrams.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/103-activity-diagrams.md @@ -2,6 +2,5 @@ Activity diagrams are used to model the flow of control in a system. They are used in conjunction with use case diagrams to model the behavior of the system for each use case. They are also used to model the behavior of a single class. -Free Content -UML Activity Diagram Tutorial -What is Activity Diagram? +- [UML Activity Diagram Tutorial](https://www.lucidchart.com/pages/uml-activity-diagram) +- [What is Activity Diagram?](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/104-statemachine-diagrams.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/104-statemachine-diagrams.md index ebda727d2..212ea6e67 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/104-statemachine-diagrams.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/104-statemachine-diagrams.md @@ -2,7 +2,6 @@ State machine diagrams are used to show the different states an object can be in at a given time. The object can be in one and only one state at a given time. State machine diagrams are similar to activity diagrams, but they are more focused on the flow of an object's state rather than the flow of the object itself. -Free Content -What is State Machine Diagram? -State Machine Diagram Tutorial -State Machine Diagram +- [What is State Machine Diagram?](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-state-machine-diagram/) +- [State Machine Diagram Tutorial](https://www.lucidchart.com/pages/uml-state-machine-diagram) +- [State Machine Diagram](https://www.sciencedirect.com/topics/computer-science/state-machine-diagram) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/105-sequence-diagrams.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/105-sequence-diagrams.md index 0946d8862..137602b1f 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/105-sequence-diagrams.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/105-sequence-diagrams.md @@ -2,6 +2,5 @@ Sequence diagrams are a way to show how objects or systems interact with each other over time. -Free Content -How to Make a UML Sequence Diagram -Sequence Diagrams Tutorial +- [How to Make a UML Sequence Diagram](https://www.youtube.com/watch?v=pCK6prSq8aw) +- [Sequence Diagrams Tutorial](https://www.youtube.com/watch?v=cxG-qWthxt4&list=PLfoY2ARMh0hBthB9VqsQzogSouTjzkMHe&index=2) diff --git a/src/roadmaps/computer-science/content/110-common-uml-diagrams/readme.md b/src/roadmaps/computer-science/content/110-common-uml-diagrams/index.md similarity index 52% rename from src/roadmaps/computer-science/content/110-common-uml-diagrams/readme.md rename to src/roadmaps/computer-science/content/110-common-uml-diagrams/index.md index 0d1449ecf..2e384d2b5 100644 --- a/src/roadmaps/computer-science/content/110-common-uml-diagrams/readme.md +++ b/src/roadmaps/computer-science/content/110-common-uml-diagrams/index.md @@ -2,5 +2,4 @@ UML is a standard way of visualizing a software system. It is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. -Free Content -UML Diagrams Full Course (Unified Modeling Language) +- [UML Diagrams Full Course (Unified Modeling Language)](https://www.youtube.com/watch?v=WnMQ8HlmeXc) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/100-gof-design-patterns.md b/src/roadmaps/computer-science/content/111-design-patterns/100-gof-design-patterns.md index d80982929..d830c58ff 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/100-gof-design-patterns.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/100-gof-design-patterns.md @@ -2,5 +2,4 @@ Gang of Four (GoF) design patterns are a set of 23 design patterns that were first described in the book "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. The book is commonly referred to as the "Gang of Four book". -Free Content -Design Patterns for Humans +- [Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/101-architectural-patterns.md b/src/roadmaps/computer-science/content/111-design-patterns/101-architectural-patterns.md index c301c1bef..f0d306a22 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/101-architectural-patterns.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/101-architectural-patterns.md @@ -2,6 +2,5 @@ Architectural patterns are a high-level design pattern that focuses on the overall structure of the system. They are similar to design patterns, but they are more concerned with the structure of the system. They are used to solve problems that are common to many software systems. -Free Content -10 Common Software Architectural Patterns in a nutshell -Architectural Pattern - Wikipedia +- [10 Common Software Architectural Patterns in a nutshell](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013) +- [Architectural Pattern - Wikipedia](https://en.wikipedia.org/wiki/Architectural_pattern) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/102-dependency-injection.md b/src/roadmaps/computer-science/content/111-design-patterns/102-dependency-injection.md index 4bf9e4d22..35e428182 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/102-dependency-injection.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/102-dependency-injection.md @@ -2,6 +2,5 @@ Dependency injection is a software design pattern that allows us to decouple the dependencies of a class from the class itself. This allows us to write more flexible and testable code. -Free Content -Dependency Injection - StackOverflow -What is Dependency Injection? +- [Dependency Injection - StackOverflow](https://stackoverflow.com/questions/130794/what-is-dependency-injection) +- [What is Dependency Injection?](https://www.youtube.com/watch?v=0yc2UANSDiw) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/103-null-object-pattern.md b/src/roadmaps/computer-science/content/111-design-patterns/103-null-object-pattern.md index 49b8a648f..93146f9a3 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/103-null-object-pattern.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/103-null-object-pattern.md @@ -2,6 +2,5 @@ Null object pattern is a design pattern that is used to represent a null value with an object. It is a way to avoid null reference exceptions by providing a default object that does nothing. It is a way to provide a default behavior in case data is not available. -Free Content -Design Patterns - Null Object Pattern -Null Object Design Pattern - Geeks for Geeks +- [Design Patterns - Null Object Pattern](https://www.tutorialspoint.com/design_pattern/null_object_pattern.htm) +- [Null Object Design Pattern - Geeks for Geeks](https://www.geeksforgeeks.org/null-object-design-pattern/) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/104-type-object-pattern.md b/src/roadmaps/computer-science/content/111-design-patterns/104-type-object-pattern.md index 09056d4bf..c5538373b 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/104-type-object-pattern.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/104-type-object-pattern.md @@ -2,5 +2,4 @@ Type object pattern is a creational design pattern that allows us to create a new object of a type without exposing the object creation logic to the client. It is used when we need to create a new object of a type, but we don't know which type we need to create until runtime. It is like a factory pattern, but instead of returning a new object of a type, it returns a new object of a type that is already created. -Free Content -Type Object Pattern +- [Type Object Pattern](https://gameprogrammingpatterns.com/type-object.html) diff --git a/src/roadmaps/computer-science/content/111-design-patterns/readme.md b/src/roadmaps/computer-science/content/111-design-patterns/index.md similarity index 51% rename from src/roadmaps/computer-science/content/111-design-patterns/readme.md rename to src/roadmaps/computer-science/content/111-design-patterns/index.md index a44af17e0..67b1dfb03 100644 --- a/src/roadmaps/computer-science/content/111-design-patterns/readme.md +++ b/src/roadmaps/computer-science/content/111-design-patterns/index.md @@ -2,5 +2,4 @@ Design patterns are solutions to common problems in software design. They are formalized best practices that the programmer can use to solve common problems when designing an application or system. -Free Content -Design Patterns - Wikipedia +- [Design Patterns - Wikipedia](https://en.wikipedia.org/wiki/Software_design_pattern) diff --git a/src/roadmaps/computer-science/content/112-basic-math-skills/100-probability.md b/src/roadmaps/computer-science/content/112-basic-math-skills/100-probability.md index c220858f1..83fbaa5a8 100644 --- a/src/roadmaps/computer-science/content/112-basic-math-skills/100-probability.md +++ b/src/roadmaps/computer-science/content/112-basic-math-skills/100-probability.md @@ -2,11 +2,11 @@ Probability is the study of how likely an event is to occur. It is a measure of how certain we are that an event will happen. -MIT 6.042J - Probability Introduction -MIT 6.042J - Conditional Probability -MIT 6.042J - Independence -MIT 6.042J - Random Variables -MIT 6.042J - Expectation I -MIT 6.042J - Expectation II -MIT 6.042J - Large Deviations -MIT 6.042J - Random Walks +- [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B) +- [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B) +- [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B) +- [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21) +- [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B) +- [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B) +- [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B) +- [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25) diff --git a/src/roadmaps/computer-science/content/112-basic-math-skills/101-combinatorics.md b/src/roadmaps/computer-science/content/112-basic-math-skills/101-combinatorics.md index d6b6f8a07..a9b0f2bc8 100644 --- a/src/roadmaps/computer-science/content/112-basic-math-skills/101-combinatorics.md +++ b/src/roadmaps/computer-science/content/112-basic-math-skills/101-combinatorics.md @@ -2,8 +2,7 @@ Combinatorics is the study of counting. It is a branch of mathematics that is used to solve problems in a variety of fields, including computer science, statistics, and physics. In computer science, combinatorics is used to solve problems related to counting the number of possible outcomes of a given problem. For example, if you are given a set of 10 objects, how many different ways can you arrange them? Or, if you are given a set of 10 objects, how many different ways can you choose 3 objects from that set? These are examples of combinatorial problems. -Free Content -Math Skills: How to find Factorial, Permutation and Combination -Make School: Probability -Make School: More Probability and Markov Chains -Probability and Combinatorics Topic +- [Math Skills: How to find Factorial, Permutation and Combination](https://www.youtube.com/watch?v=8RRo6Ti9d0U) +- [Make School: Probability](https://www.youtube.com/watch?v=sZkAAk9Wwa4) +- [Make School: More Probability and Markov Chains](https://www.youtube.com/watch?v=dNaJg-mLobQ) +- [Probability and Combinatorics Topic](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic) diff --git a/src/roadmaps/computer-science/content/112-basic-math-skills/index.md b/src/roadmaps/computer-science/content/112-basic-math-skills/index.md new file mode 100644 index 000000000..b17bda8c2 --- /dev/null +++ b/src/roadmaps/computer-science/content/112-basic-math-skills/index.md @@ -0,0 +1,18 @@ +# Basic Math Skills + +Math is a fundamental skill for computer science. + +- [Lec 1 | MIT 6.042J Mathematics for Computer Science, Fall 2010](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B) +- [Integer Arithmetic, Karatsuba Multiplication](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) +- [The Chinese Remainder Theorem (used in cryptography)](https://www.youtube.com/watch?v=ru7mWZJlRQg) +- [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html) +- [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t) +- [Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/) +- [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B) +- [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B) +- [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B) +- [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21) +- [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B) +- [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B) +- [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B) +- [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25) diff --git a/src/roadmaps/computer-science/content/112-basic-math-skills/readme.md b/src/roadmaps/computer-science/content/112-basic-math-skills/readme.md deleted file mode 100644 index d4adf7aaf..000000000 --- a/src/roadmaps/computer-science/content/112-basic-math-skills/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Basic Math Skills - -Math is a fundamental skill for computer science. - -Lec 1 | MIT 6.042J Mathematics for Computer Science, Fall 2010 - -##### Math for Fast Processing - -Integer Arithmetic, Karatsuba Multiplication -The Chinese Remainder Theorem (used in cryptography) - -##### Discrete Math - -Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory -Discrete Mathematics by Shai Simonson (19 videos) -Discrete Mathematics By IIT Ropar NPTEL - -##### Probability - -MIT 6.042J - Probability Introduction -MIT 6.042J - Conditional Probability -MIT 6.042J - Independence -MIT 6.042J - Random Variables -MIT 6.042J - Expectation I -MIT 6.042J - Expectation II -MIT 6.042J - Large Deviations -MIT 6.042J - Random Walks diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/100-p.md b/src/roadmaps/computer-science/content/113-complexity-classes/100-p.md index d50543e3c..adedd3d85 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/100-p.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/100-p.md @@ -2,27 +2,17 @@ The P in the P class stands for Polynomial Time. It is the collection of decision problems(problems with a “yes” or “no” answer) that can be solved by a deterministic machine in polynomial time. -Free Content - -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/101-np.md b/src/roadmaps/computer-science/content/113-complexity-classes/101-np.md index e6731d71d..157cfcb8d 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/101-np.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/101-np.md @@ -2,27 +2,17 @@ The NP in NP class stands for Non-deterministic Polynomial Time. It is the collection of decision problems that can be solved by a non-deterministic machine in polynomial time. -Free Content - -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/102-co-np.md b/src/roadmaps/computer-science/content/113-complexity-classes/102-co-np.md index cd537c5ed..6833a3e85 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/102-co-np.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/102-co-np.md @@ -2,27 +2,17 @@ Co-NP stands for the complement of NP Class. It means if the answer to a problem in Co-NP is No, then there is proof that can be checked in polynomial time. -Free Content - -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/103-np-hard.md b/src/roadmaps/computer-science/content/113-complexity-classes/103-np-hard.md index 5fe78ab08..f739522c9 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/103-np-hard.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/103-np-hard.md @@ -2,27 +2,17 @@ An NP-hard problem is at least as hard as the hardest problem in NP and it is the class of the problems such that every problem in NP reduces to NP-hard. -Free Content - -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/100-travelling-salesman-problem.md b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/100-travelling-salesman-problem.md index 0e4249c12..8d62c14aa 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/100-travelling-salesman-problem.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/100-travelling-salesman-problem.md @@ -2,8 +2,7 @@ The Travelling Salesman Problem (TSP) is a classic problem in computer science. It is a problem that is NP-complete, which means that it is a problem that is hard to solve. It is also a problem that is used to test the efficiency of algorithms. -Free Content -Travelling Salesman Problem | Set 1 (Naive and Dynamic Programming) -What is the Traveling Salesman Problem? -4.7 Traveling Salesperson Problem - Dynamic Programming -Traveling Salesman Problem | Dynamic Programming | Graph Theory +- [Travelling Salesman Problem | Set 1 (Naive and Dynamic Programming)](https://www.geeksforgeeks.org/travelling-salesman-problem-set-1/) +- [What is the Traveling Salesman Problem?](https://www.youtube.com/watch?v=1pmBjIZ20pE) +- [4.7 Traveling Salesperson Problem - Dynamic Programming](https://www.youtube.com/watch?v=XaXsJJh-Q5Y) +- [Traveling Salesman Problem | Dynamic Programming | Graph Theory](https://www.youtube.com/watch?v=cY4HiiFHO1o) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/101-knapsack-problem.md b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/101-knapsack-problem.md index 0dabfd74d..52811a67a 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/101-knapsack-problem.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/101-knapsack-problem.md @@ -2,7 +2,6 @@ KnapSack Problem is a classic problem in computer science. It is a problem in which we are given a set of items, each with a weight and a value, and we need to determine which items to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. -Free Content -0-1 Knapsack Problem | DP-10 -How to solve the Knapsack Problem with dynamic programming -3.1 Knapsack Problem - Greedy Method +- [0-1 Knapsack Problem | DP-10](https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/) +- [How to solve the Knapsack Problem with dynamic programming](https://medium.com/@fabianterh/how-to-solve-the-knapsack-problem-with-dynamic-programming-eb88c706d3cf) +- [3.1 Knapsack Problem - Greedy Method](https://www.youtube.com/watch?v=oTTzNMHM05I) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/102-longest-path-problem.md b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/102-longest-path-problem.md index eb9ca1bf1..0cb1de155 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/102-longest-path-problem.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/102-longest-path-problem.md @@ -2,7 +2,6 @@ Longest path problem is a problem that asks us to find the longest path in a graph. -Free Content -Longest Path in a Directed Acyclic Graph -Shortest/Longest path on a Directed Acyclic Graph (DAG) | Graph Theory -Longest Simple Path - Intro to Algorithms +- [Longest Path in a Directed Acyclic Graph](https://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/) +- [Shortest/Longest path on a Directed Acyclic Graph (DAG) | Graph Theory](https://www.youtube.com/watch?v=TXkDpqjDMHA) +- [Longest Simple Path - Intro to Algorithms](https://www.youtube.com/watch?v=lRH0tax5dFA) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/index.md b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/index.md new file mode 100644 index 000000000..65e31dd53 --- /dev/null +++ b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/index.md @@ -0,0 +1,18 @@ +# NP Complete + +A problem is NP-complete if it is both NP and NP-hard. NP-complete problems are the hard problems in NP. + +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/readme.md b/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/readme.md deleted file mode 100644 index d6dfab5e4..000000000 --- a/src/roadmaps/computer-science/content/113-complexity-classes/104-np-complete/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# NP Complete - -A problem is NP-complete if it is both NP and NP-hard. NP-complete problems are the hard problems in NP. - -Free Content - -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/105-p-equals-np.md b/src/roadmaps/computer-science/content/113-complexity-classes/105-p-equals-np.md index e9bdc7466..f9e17aa8e 100644 --- a/src/roadmaps/computer-science/content/113-complexity-classes/105-p-equals-np.md +++ b/src/roadmaps/computer-science/content/113-complexity-classes/105-p-equals-np.md @@ -2,5 +2,4 @@ The P = NP problem is one of the most famous problems in computer science. It asks if the problem of determining if a given input belongs to a certain class of problems is as hard as the problem of solving the given input. In other words, it asks if the problem of determining if a given input belongs to a certain class of problems is as hard as the problem of determining if a given input belongs to a certain class of problems. This problem is also known as the Halting Problem. -Free Content -What's "P=NP?", and why is it such a famous question? +- [Whats P=NP?, and why is it such a famous question?](https://stackoverflow.com/questions/111307/whats-p-np-and-why-is-it-such-a-famous-question) diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/index.md b/src/roadmaps/computer-science/content/113-complexity-classes/index.md new file mode 100644 index 000000000..af078e0da --- /dev/null +++ b/src/roadmaps/computer-science/content/113-complexity-classes/index.md @@ -0,0 +1,25 @@ +# Complexity Classes + +In computer science, there exist some problems whose solutions are not yet found, the problems are divided into classes known as Complexity Classes. In complexity theory, a Complexity Class is a set of problems with related complexity. These classes help scientists to groups problems based on how much time and space they require to solve problems and verify the solutions. It is the branch of the theory of computation that deals with the resources required to solve a problem. + +- [Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete](https://www.geeksforgeeks.org/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/) +- [Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard) +- [Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22) +- [Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24) +- [Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24) +- [Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939) +- [NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm) +- [NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18) +- [CSE373 2020 - Lecture 23 - NP-Completeness](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23) +- [CSE373 2020 - Lecture 24 - Satisfiability](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24) +- [CSE373 2020 - Lecture 25 - More NP-Completeness](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25) +- [CSE373 2020 - Lecture 26 - NP-Completeness Challenge](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26) + + + + + + + diff --git a/src/roadmaps/computer-science/content/113-complexity-classes/readme.md b/src/roadmaps/computer-science/content/113-complexity-classes/readme.md deleted file mode 100644 index b411cc51d..000000000 --- a/src/roadmaps/computer-science/content/113-complexity-classes/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# Complexity Classes - -In computer science, there exist some problems whose solutions are not yet found, the problems are divided into classes known as Complexity Classes. In complexity theory, a Complexity Class is a set of problems with related complexity. These classes help scientists to groups problems based on how much time and space they require to solve problems and verify the solutions. It is the branch of the theory of computation that deals with the resources required to solve a problem. - -Free Content -Types of Complexity Classes | P, NP, CoNP, NP hard and NP complete -Trying to understand P vs NP vs NP Complete vs NP Hard -Complexity: P, NP, NP-completeness, Reductions -Complexity: Approximation Algorithms -Complexity: Fixed-Parameter Algorithms - - -Lecture 23: Computational Complexity - ----- - -Greedy Algs. II & Intro to NP Completeness -NP Completeness II & Reductions -NP Completeness III -NP Completeness IV - ----- - -CSE373 2020 - Lecture 23 - NP-Completeness -CSE373 2020 - Lecture 24 - Satisfiability -CSE373 2020 - Lecture 25 - More NP-Completeness -CSE373 2020 - Lecture 26 - NP-Completeness Challenge - - - - - - - diff --git a/src/roadmaps/computer-science/content/114-tries.md b/src/roadmaps/computer-science/content/114-tries.md index e7c74de9f..a269b4dec 100644 --- a/src/roadmaps/computer-science/content/114-tries.md +++ b/src/roadmaps/computer-science/content/114-tries.md @@ -2,13 +2,12 @@ Tries are a data structure that can be used to store strings. The idea is to store the characters of the string in a tree-like structure, where each node of the tree represents a single character. We can use this structure to store strings in a way that allows us to quickly search for strings with a common prefix. -Free Content -Tries - DataStructure Notes -The Trie: A Neglected Data Structure -TopCoder - Using Tries -Stanford Lecture (real world use case) -MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) -0. Tries - Coursera -1. R Way Tries -2. Ternary Search Tries -3. Character Based Operations +- [Tries - DataStructure Notes](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries) +- [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure) +- [TopCoder - Using Tries](https://www.topcoder.com/thrive/articles/Using%20Tries) +- [Stanford Lecture (real world use case)](https://www.youtube.com/watch?v=TJ8SkcUSdbU) +- [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) +- [0. Tries - Coursera](https://www.coursera.org/learn/algorithms-part2/home/week/4) +- [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries) +- [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries) +- [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/100-avl-trees.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/100-avl-trees.md index 7872a48d9..f6dae415d 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/100-avl-trees.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/100-avl-trees.md @@ -4,8 +4,7 @@ AVL trees are a type of self-balancing binary search tree. They are named after In practice: From what I can tell, these aren't used much in practice, but I could see where they would be: The AVL tree is another structure supporting O(log n) search, insertion, and removal. It is more rigidly balanced than red–black trees, leading to slower insertion and removal but faster retrieval. This makes it attractive for data structures that may be built once and loaded without reconstruction, such as language dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter) -Free Content -MIT AVL Trees / AVL Sort -AVL Trees -AVL Tree Implementation -Split And Merge +- [MIT AVL Trees / AVL Sort](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6) +- [AVL Trees](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees) +- [AVL Tree Implementation](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation) +- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/101-red-black-trees.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/101-red-black-trees.md index 78f4aaadb..6fbc84612 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/101-red-black-trees.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/101-red-black-trees.md @@ -6,9 +6,8 @@ These are a translation of a 2-3 tree (see below). In practice: Red–black trees offer worst-case guarantees for insertion time, deletion time, and search time. Not only does this make them valuable in time-sensitive applications such as real-time applications, but it makes them valuable building blocks in other data structures which provide worst-case guarantees; for example, many data structures used in computational geometry can be based on red–black trees, and the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In the version 8 of Java, the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor hashcodes, a Red-Black tree is used. -Free Content -Red-Black Tree - Wikipedia -An Introduction To Binary Search And Red Black Tree -Red-Black Trees (playlist) in 30 minutes -Aduni - Algorithms - Lecture 4 (link jumps to starting point) -Aduni - Algorithms - Lecture 5 +- [Red-Black Tree - Wikipedia](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) +- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees) +- [Red-Black Trees (playlist) in 30 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin) +- [Aduni - Algorithms - Lecture 4 (link jumps to starting point)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871) +- [Aduni - Algorithms - Lecture 5](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/102-the-2-3-search-trees.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/102-the-2-3-search-trees.md index 0b785445f..4ce0c2fbc 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/102-the-2-3-search-trees.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/102-the-2-3-search-trees.md @@ -4,7 +4,6 @@ In practice: 2-3 trees have faster inserts at the expense of slower searches (si You would use 2-3 tree very rarely because its implementation involves different types of nodes. Instead, people use Red Black trees. -Free Content -23-Tree Intuition and Definition -Binary View of 23-Tree -2-3 Trees (student recitation) +- [23-Tree Intuition and Definition](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2) +- [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) +- [2-3 Trees (student recitation)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/103-the-2-3-4-trees.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/103-the-2-3-4-trees.md index d8f8fe5cb..16d3c4799 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/103-the-2-3-4-trees.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/103-the-2-3-4-trees.md @@ -2,6 +2,6 @@ In practice: For every 2-4 tree, there are corresponding red–black trees with data elements in the same order. The insertion and deletion operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce 2-4 trees just before red–black trees, even though 2-4 trees are not often used in practice. -CS 61B Lecture 26: Balanced Search Trees -Bottom Up 234-Trees -Top Down 234-Trees +- [CS 61B Lecture 26: Balanced Search Trees](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q) +- [Bottom Up 234-Trees](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) +- [Top Down 234-Trees](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/104-n-ary-trees.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/104-n-ary-trees.md index 92bb8a7c9..13a978afb 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/104-n-ary-trees.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/104-n-ary-trees.md @@ -6,5 +6,4 @@ Binary trees are a 2-ary tree, with branching factor = 2 2-3 trees are 3-ary -Free Content -K-Ary Tree +- [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/105-b-tree.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/105-b-tree.md index 6f7254a57..ff4851555 100644 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/105-b-tree.md +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/105-b-tree.md @@ -4,11 +4,10 @@ Fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer ( In Practice: B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary block in a particular file. The basic problem is turning the file block i address into a disk block (or perhaps to a cylinder-head-sector) address -Free Content -B-Tree - Wikipedia -B-Tree Datastructure -Introduction to B-Trees -B-Tree Definition and Insertion -B-Tree Deletion -MIT 6.851 - Memory Hierarchy Models -B-Trees (playlist) in 26 minutes +- [B-Tree - Wikipedia](https://en.wikipedia.org/wiki/B-tree) +- [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html) +- [Introduction to B-Trees](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6) +- [B-Tree Definition and Insertion](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) +- [B-Tree Deletion](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) +- [MIT 6.851 - Memory Hierarchy Models](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) +- [B-Trees (playlist) in 26 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz) diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/index.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/index.md new file mode 100644 index 000000000..1a5194d49 --- /dev/null +++ b/src/roadmaps/computer-science/content/115-balanced-search-trees/index.md @@ -0,0 +1,8 @@ +# Balanced Search Trees + +Balanced search trees are a type of data structure that allow for fast insertion, deletion, and lookup of data. They are a type of self-balancing binary search tree, which means that they are a binary tree that maintains the binary search tree property while also keeping the tree balanced. This means that the tree is always approximately balanced, which allows for fast insertion, deletion, and lookup of data. + +- [Self-balancing binary search tree - Wikipedia](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree) +- [Balanced Search Trees Operations and Applications 11 min](https://www.youtube.com/watch?v=IbNZ-x1I2IM) +- [Balanced binary search tree rotations](https://www.youtube.com/watch?v=q4fnJZr8ztY) + diff --git a/src/roadmaps/computer-science/content/115-balanced-search-trees/readme.md b/src/roadmaps/computer-science/content/115-balanced-search-trees/readme.md deleted file mode 100644 index c97826c9b..000000000 --- a/src/roadmaps/computer-science/content/115-balanced-search-trees/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Balanced Search Trees - -Balanced search trees are a type of data structure that allow for fast insertion, deletion, and lookup of data. They are a type of self-balancing binary search tree, which means that they are a binary tree that maintains the binary search tree property while also keeping the tree balanced. This means that the tree is always approximately balanced, which allows for fast insertion, deletion, and lookup of data. - -Free Content -Self-balancing binary search tree - Wikipedia -Balanced Search Trees Operations and Applications 11 min -Balanced binary search tree rotations - diff --git a/src/roadmaps/computer-science/content/116-system-design/100-horizontal-vs-vertical-scaling.md b/src/roadmaps/computer-science/content/116-system-design/100-horizontal-vs-vertical-scaling.md index 9e79f4bda..1ec2071a9 100644 --- a/src/roadmaps/computer-science/content/116-system-design/100-horizontal-vs-vertical-scaling.md +++ b/src/roadmaps/computer-science/content/116-system-design/100-horizontal-vs-vertical-scaling.md @@ -2,7 +2,6 @@ Horizontal scaling is the process of adding more machines to your system. This is also known as scaling out. Vertical scaling is the process of adding more power to a single machine. This is also known as scaling up. -Free Content -Scaling Horizontally vs. Scaling Vertically -System Design Basics: Horizontal vs. Vertical Scaling -Vertical vs. Horizontal Scaling for Database Servers +- [Scaling Horizontally vs. Scaling Vertically](https://www.section.io/blog/scaling-horizontally-vs-vertically/) +- [System Design Basics: Horizontal vs. Vertical Scaling](https://www.youtube.com/watch?v=xpDnVSmNFX0) +- [Vertical vs. Horizontal Scaling for Database Servers](https://www.youtube.com/watch?v=R99R-SNbo9g) diff --git a/src/roadmaps/computer-science/content/116-system-design/101-clustering.md b/src/roadmaps/computer-science/content/116-system-design/101-clustering.md index 1336376d4..dfd459187 100644 --- a/src/roadmaps/computer-science/content/116-system-design/101-clustering.md +++ b/src/roadmaps/computer-science/content/116-system-design/101-clustering.md @@ -2,5 +2,4 @@ At a high level, a computer cluster is a group of two or more computers, or nodes, that run in parallel to achieve a common goal. This allows workloads consisting of a high number of individual, parallelizable tasks to be distributed among the nodes in the cluster. As a result, these tasks can leverage the combined memory and processing power of each computer to increase overall performance. -Free Content -System Design: Clustering +- [System Design: Clustering](https://dev.to/karanpratapsingh/system-design-clustering-3726) diff --git a/src/roadmaps/computer-science/content/116-system-design/101-load-balancing.md b/src/roadmaps/computer-science/content/116-system-design/101-load-balancing.md index 47b66f156..6b328ea83 100644 --- a/src/roadmaps/computer-science/content/116-system-design/101-load-balancing.md +++ b/src/roadmaps/computer-science/content/116-system-design/101-load-balancing.md @@ -2,6 +2,5 @@ Load balancing is the process of distributing network or application traffic across a cluster of servers. Load balancing is used to improve responsiveness and reliability of applications, maximize throughput, minimize response time, and avoid overload of any single server. -Free Content -Load Balancers 101 -What is Load Balancing? +- [Load Balancers 101](https://www.youtube.com/watch?v=galcDRNd5Ow) +- [What is Load Balancing?](https://www.youtube.com/watch?v=gGLophKzJs8) diff --git a/src/roadmaps/computer-science/content/116-system-design/102-caching.md b/src/roadmaps/computer-science/content/116-system-design/102-caching.md index 02523e907..d5c2c58d1 100644 --- a/src/roadmaps/computer-science/content/116-system-design/102-caching.md +++ b/src/roadmaps/computer-science/content/116-system-design/102-caching.md @@ -2,7 +2,6 @@ Caching is a way of storing data in a temporary storage to make future requests faster. It is one of the most important tools in the computer science toolbox. -Free Content -System Design - Caching -What is Caching | System Design Basics +- [System Design - Caching](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#caching) +- [What is Caching | System Design Basics](https://www.youtube.com/watch?v=joifNgoXXFk) diff --git a/src/roadmaps/computer-science/content/116-system-design/103-cdn.md b/src/roadmaps/computer-science/content/116-system-design/103-cdn.md index dd70aec6c..4e0dc66c4 100644 --- a/src/roadmaps/computer-science/content/116-system-design/103-cdn.md +++ b/src/roadmaps/computer-science/content/116-system-design/103-cdn.md @@ -2,6 +2,5 @@ A CDN is a network of servers that are distributed geographically. The servers are connected to each other and to the internet. The servers are used to deliver content to users. The content is delivered to the user from the server that is closest to the user. This is done to reduce latency and improve the performance of the content delivery. -Free Content -Content Delivery Network (CDN) - System Design -Content Delivery Networks +- [Content Delivery Network (CDN) - System Design](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#content-delivery-network-cdn) +- [Content Delivery Networks](https://www.youtube.com/watch?v=6DXEPcXKQNY) diff --git a/src/roadmaps/computer-science/content/116-system-design/104-proxy.md b/src/roadmaps/computer-science/content/116-system-design/104-proxy.md index 65d76cd52..a82b2615d 100644 --- a/src/roadmaps/computer-science/content/116-system-design/104-proxy.md +++ b/src/roadmaps/computer-science/content/116-system-design/104-proxy.md @@ -2,6 +2,5 @@ A proxy server is an intermediary piece of hardware/software sitting between the client and the backend server. It receives requests from clients and relays them to the origin servers. Typically, proxies are used to filter requests, log requests, or sometimes transform requests (by adding/removing headers, encrypting/decrypting, or compression). -Free Content -Proxy - System Design -Proxy Servers +- [Proxy - System Design](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#proxy) +- [Proxy Servers](https://roadmap.sh/guides/proxy-servers) diff --git a/src/roadmaps/computer-science/content/116-system-design/105-cap-theorem.md b/src/roadmaps/computer-science/content/116-system-design/105-cap-theorem.md index 82309de64..6e33f5308 100644 --- a/src/roadmaps/computer-science/content/116-system-design/105-cap-theorem.md +++ b/src/roadmaps/computer-science/content/116-system-design/105-cap-theorem.md @@ -2,6 +2,5 @@ The CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than two out of Consistency, Availability and Partition Tolerance. -Free Content -What is CAP Theorem? -CAP Theorem - Wikipedia +- [What is CAP Theorem?](https://www.youtube.com/watch?v=_RbsFXWRZ10) +- [CAP Theorem - Wikipedia](https://en.wikipedia.org/wiki/CAP_theorem) diff --git a/src/roadmaps/computer-science/content/116-system-design/106-queues.md b/src/roadmaps/computer-science/content/116-system-design/106-queues.md index 9e46fd6ae..a3fa57d48 100644 --- a/src/roadmaps/computer-science/content/116-system-design/106-queues.md +++ b/src/roadmaps/computer-science/content/116-system-design/106-queues.md @@ -2,7 +2,6 @@ Messaging queues are a common way to decouple systems. They are used to decouple the producer of a message from the consumer of a message. This allows the producer to send a message and not have to wait for the consumer to process it. It also allows the consumer to process the message at their own pace. -Free Content -Message Queues - System Design -What is a Message Queue? -What is a Message Queue and Where is it used? +- [Message Queues - System Design](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#message-queues) +- [What is a Message Queue?](https://www.youtube.com/watch?v=xErwDaOc-Gs) +- [What is a Message Queue and Where is it used?](https://www.youtube.com/watch?v=oUJbuFMyBDk) diff --git a/src/roadmaps/computer-science/content/116-system-design/107-architectural-styles.md b/src/roadmaps/computer-science/content/116-system-design/107-architectural-styles.md index 9a9b636ec..c2597e723 100644 --- a/src/roadmaps/computer-science/content/116-system-design/107-architectural-styles.md +++ b/src/roadmaps/computer-science/content/116-system-design/107-architectural-styles.md @@ -2,5 +2,4 @@ Architectural patterns are the fundamental organization of a system, defining how the system is composed and how its components interact. Architectural patterns are identified by their name, like client-server, peer-to-peer, and layered. -Free Content -List of software architecture styles and patterns +- [List of software architecture styles and patterns](https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns) diff --git a/src/roadmaps/computer-science/content/116-system-design/108-rest.md b/src/roadmaps/computer-science/content/116-system-design/108-rest.md index 89298f1e9..3171ffee3 100644 --- a/src/roadmaps/computer-science/content/116-system-design/108-rest.md +++ b/src/roadmaps/computer-science/content/116-system-design/108-rest.md @@ -2,9 +2,7 @@ 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 - -What is REST? -What is a REST API? -Roy Fielding's dissertation chapter, "Representational State Transfer (REST)" -Learn REST: A RESTful Tutorial +- [What is REST?](https://www.codecademy.com/article/what-is-rest) +- [What is a REST API?](https://www.redhat.com/en/topics/api/what-is-a-rest-api) +- [Roy Fieldings dissertation chapter, Representational State Transfer (REST)](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) +- [Learn REST: A RESTful Tutorial](https://restapitutorial.com/) diff --git a/src/roadmaps/computer-science/content/116-system-design/109-graphql.md b/src/roadmaps/computer-science/content/116-system-design/109-graphql.md index e2db673a1..0d6f69509 100644 --- a/src/roadmaps/computer-science/content/116-system-design/109-graphql.md +++ b/src/roadmaps/computer-science/content/116-system-design/109-graphql.md @@ -2,5 +2,4 @@ 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 -Apollo GraphQL Tutorials +- [Apollo GraphQL Tutorials](https://www.apollographql.com/tutorials/) diff --git a/src/roadmaps/computer-science/content/116-system-design/110-grpc.md b/src/roadmaps/computer-science/content/116-system-design/110-grpc.md index c0c63e749..44f781947 100644 --- a/src/roadmaps/computer-science/content/116-system-design/110-grpc.md +++ b/src/roadmaps/computer-science/content/116-system-design/110-grpc.md @@ -6,8 +6,7 @@ It's main use case is for communication between two different languages within t gRPC uses the protocol buffer language to define the structure of the data that is -Free Content -gRPC Website -gRPC Introduction -gRPC Core Concepts -Stephane Maarek - gRPC Introduction +- [gRPC Website](https://grpc.io/) +- [gRPC Introduction](https://grpc.io/docs/what-is-grpc/introduction/) +- [gRPC Core Concepts](https://grpc.io/docs/what-is-grpc/core-concepts/) +- [Stephane Maarek - gRPC Introduction](https://youtu.be/XRXTsQwyZSU) diff --git a/src/roadmaps/computer-science/content/116-system-design/111-cloud-design-patterns.md b/src/roadmaps/computer-science/content/116-system-design/111-cloud-design-patterns.md index d363c714d..2c01b9dc0 100644 --- a/src/roadmaps/computer-science/content/116-system-design/111-cloud-design-patterns.md +++ b/src/roadmaps/computer-science/content/116-system-design/111-cloud-design-patterns.md @@ -4,5 +4,4 @@ These design patterns are useful for building reliable, scalable, secure applica The link below has cloud design patterns where each pattern describes the problem that the pattern addresses, considerations for applying the pattern, and an example based on Microsoft Azure. Most patterns include code samples or snippets that show how to implement the pattern on Azure. However, most patterns are relevant to any distributed system, whether hosted on Azure or other cloud platforms. -Free Content -Cloud Design Patterns +- [Cloud Design Patterns](https://learn.microsoft.com/en-us/azure/architecture/patterns/) diff --git a/src/roadmaps/computer-science/content/116-system-design/112-long-polling.md b/src/roadmaps/computer-science/content/116-system-design/112-long-polling.md index 5f266ae5b..296d1945b 100644 --- a/src/roadmaps/computer-science/content/116-system-design/112-long-polling.md +++ b/src/roadmaps/computer-science/content/116-system-design/112-long-polling.md @@ -2,6 +2,5 @@ Long polling is a technique used to implement server push functionality over HTTP. It is a method of opening a request on the server and keeping it open until an event occurs, at which point the server responds. This is in contrast to a regular HTTP request, where the server responds immediately with whatever data is available at the time. -Free Content -Long polling -What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet? +- [Long polling](https://javascript.info/long-polling) +- [What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?](https://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet) diff --git a/src/roadmaps/computer-science/content/116-system-design/113-short-polling.md b/src/roadmaps/computer-science/content/116-system-design/113-short-polling.md index 90af71b63..d540c6a98 100644 --- a/src/roadmaps/computer-science/content/116-system-design/113-short-polling.md +++ b/src/roadmaps/computer-science/content/116-system-design/113-short-polling.md @@ -2,5 +2,4 @@ In short polling, the client requests information from the server. The server processes the request. If data is available for the request, server responds to the request with the required information. However, if the server has no data available for the client, server returns an empty response. In both the situation, the connection will be closed after returning the response. Clients keep issuing new requests even after server sends the empty responses. This mechanism increases the network cost on the server. -Free Content -What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet? +- [What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?](https://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet) diff --git a/src/roadmaps/computer-science/content/116-system-design/114-web-sockets.md b/src/roadmaps/computer-science/content/116-system-design/114-web-sockets.md index 27ca6075e..852ffc5f5 100644 --- a/src/roadmaps/computer-science/content/116-system-design/114-web-sockets.md +++ b/src/roadmaps/computer-science/content/116-system-design/114-web-sockets.md @@ -2,5 +2,4 @@ Web sockets are a bidirectional communication protocol between a client and a server. They are used for real-time applications like chat, multiplayer games, and live data updates. Web sockets are also used to establish a connection between a server and a client. This connection is then used to send data in both directions. -Free Content -What is web socket and how it is different from the HTTP? +- [What is web socket and how it is different from the HTTP?](https://www.geeksforgeeks.org/what-is-web-socket-and-how-it-is-different-from-the-http/) diff --git a/src/roadmaps/computer-science/content/116-system-design/115-sse.md b/src/roadmaps/computer-science/content/116-system-design/115-sse.md index 3910be158..f710db226 100644 --- a/src/roadmaps/computer-science/content/116-system-design/115-sse.md +++ b/src/roadmaps/computer-science/content/116-system-design/115-sse.md @@ -2,6 +2,5 @@ Server-Sent Events is a server push technology enabling a client to receive automatic updates from a server via an HTTP connection, and describes how servers can initiate data transmission towards clients once an initial client connection has been established. -Free Content -What is Server-Sent Events (SSE) and how to implement it? -Using server-sent events +- [What is Server-Sent Events (SSE) and how to implement it?](https://medium.com/yemeksepeti-teknoloji/what-is-server-sent-events-sse-and-how-to-implement-it-904938bffd73) +- [Using server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) diff --git a/src/roadmaps/computer-science/content/116-system-design/index.md b/src/roadmaps/computer-science/content/116-system-design/index.md new file mode 100644 index 000000000..1f74f1559 --- /dev/null +++ b/src/roadmaps/computer-science/content/116-system-design/index.md @@ -0,0 +1,9 @@ +# System Design + +System design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements. It is a very broad topic, and there are many ways to approach it. + +- [System Design Primer](https://github.com/donnemartin/system-design-primer) +- [System Design: The complete course](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo) +- [System Design 101](https://www.youtube.com/watch?v=Y-Gl4HEyeUQ) +- [Scaling the Unscalable](https://www.youtube.com/watch?v=a2rcgzludDU) +- [System design interview: Scale to 1 million users](https://www.youtube.com/watch?v=YkGHxOg9d3M) diff --git a/src/roadmaps/computer-science/content/116-system-design/readme.md b/src/roadmaps/computer-science/content/116-system-design/readme.md deleted file mode 100644 index 0f0594fb1..000000000 --- a/src/roadmaps/computer-science/content/116-system-design/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# System Design - -System design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements. It is a very broad topic, and there are many ways to approach it. - -Free Content -System Design Primer -System Design: The complete course -System Design 101 -Scaling the Unscalable -System design interview: Scale to 1 million users diff --git a/src/roadmaps/computer-science/content/117-databases/100-sql-vs-nosql-databases.md b/src/roadmaps/computer-science/content/117-databases/100-sql-vs-nosql-databases.md index f4f22401c..ba6f17b3f 100644 --- a/src/roadmaps/computer-science/content/117-databases/100-sql-vs-nosql-databases.md +++ b/src/roadmaps/computer-science/content/117-databases/100-sql-vs-nosql-databases.md @@ -4,7 +4,6 @@ SQL stands for Structured Query Language. It's used for relational databases. A NoSQL stands for Not Only SQL. It's used for non-relational databases. A NoSQL database is a collection of collections that stores a specific set of unstructured data. Some examples are MongoDB, CouchDB, Redis etc. -Free Content -SQL vs. NoSQL: What's the difference? -Database Design Tips | Choosing the Best Database in a System Design Interview -NoSQL vs SQL – Which Type of Database Should You Use? +- [SQL vs. NoSQL: Whats the difference?](https://www.youtube.com/watch?v=Q5aTUc7c4jg) +- [Database Design Tips | Choosing the Best Database in a System Design Interview](https://www.youtube.com/watch?v=cODCpXtPHbQ&t=22s) +- [NoSQL vs SQL – Which Type of Database Should You Use?](https://www.youtube.com/watch?v=FzlpwoeSrE0) diff --git a/src/roadmaps/computer-science/content/117-databases/101-normalization-denormalization.md b/src/roadmaps/computer-science/content/117-databases/101-normalization-denormalization.md index 0ab34610e..f5399de9b 100644 --- a/src/roadmaps/computer-science/content/117-databases/101-normalization-denormalization.md +++ b/src/roadmaps/computer-science/content/117-databases/101-normalization-denormalization.md @@ -4,6 +4,5 @@ Database normalization is a process used to organize a database into tables and Denormalization is the opposite of normalization. It is the process of adding redundant data to a database to improve read performance. This is done by adding duplicate data into multiple tables to avoid expensive joins. This is done at the expense of increased storage and decreased write performance. -Free Content -Normalization vs. Denormalization | Events and Event Streaming -Normalization - 1NF, 2NF, 3NF and 4NF +- [Normalization vs. Denormalization | Events and Event Streaming](https://www.youtube.com/watch?v=sDU94hraq8g) +- [Normalization - 1NF, 2NF, 3NF and 4NF](https://www.youtube.com/watch?v=UrYLYV7WSHM) diff --git a/src/roadmaps/computer-science/content/117-databases/102-entity-relationship-model.md b/src/roadmaps/computer-science/content/117-databases/102-entity-relationship-model.md index 67f0922dc..b0dc7572d 100644 --- a/src/roadmaps/computer-science/content/117-databases/102-entity-relationship-model.md +++ b/src/roadmaps/computer-science/content/117-databases/102-entity-relationship-model.md @@ -2,6 +2,5 @@ Entity relationship model is a high-level data model that describes the logical structure of a database. It is a graphical representation of entities and their relationships to each other, typically used in modeling the organization of data within databases or information systems. -Free Content -Entity Relationship Diagram (ERD) Tutorial - Part 1 -Entity Relationship Diagram (ERD) Tutorial - Part 2 +- [Entity Relationship Diagram (ERD) Tutorial - Part 1](https://www.youtube.com/watch?v=QpdhBUYk7Kk) +- [Entity Relationship Diagram (ERD) Tutorial - Part 2](https://www.youtube.com/watch?v=-CuY5ADwn24) diff --git a/src/roadmaps/computer-science/content/117-databases/103-ddl.md b/src/roadmaps/computer-science/content/117-databases/103-ddl.md index cc3eab36a..86dac45b9 100644 --- a/src/roadmaps/computer-science/content/117-databases/103-ddl.md +++ b/src/roadmaps/computer-science/content/117-databases/103-ddl.md @@ -2,5 +2,4 @@ DDL or Data Definition Language actually consists of the SQL commands that can be used to define the database schema. It simply deals with descriptions of the database schema and is used to create and modify the structure of database objects in the database. DDL is a set of SQL commands used to create, modify, and delete database structures but not data. These commands are normally not used by a general user, who should be accessing the database via an application. -Free Content -SQL | DDL, DQL, DML, DCL and TCL Commands +- [SQL | DDL, DQL, DML, DCL and TCL Commands](https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/) diff --git a/src/roadmaps/computer-science/content/117-databases/104-dml.md b/src/roadmaps/computer-science/content/117-databases/104-dml.md index 562133ead..6150bd9d3 100644 --- a/src/roadmaps/computer-science/content/117-databases/104-dml.md +++ b/src/roadmaps/computer-science/content/117-databases/104-dml.md @@ -2,5 +2,4 @@ The SQL commands that deals with the manipulation of data present in the database belong to DML or Data Manipulation Language and this includes most of the SQL statements. It is the component of the SQL statement that controls access to data and to the database. Basically, DCL statements are grouped with DML statements. -Free Content -SQL | DDL, DQL, DML, DCL and TCL Commands +- [SQL | DDL, DQL, DML, DCL and TCL Commands](https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/) diff --git a/src/roadmaps/computer-science/content/117-databases/105-dql.md b/src/roadmaps/computer-science/content/117-databases/105-dql.md index def704e43..698fb354f 100644 --- a/src/roadmaps/computer-science/content/117-databases/105-dql.md +++ b/src/roadmaps/computer-science/content/117-databases/105-dql.md @@ -2,5 +2,4 @@ DQL statements are used for performing queries on the data within schema objects. The purpose of the DQL Command is to get some schema relation based on the query passed to it. We can define DQL as follows it is a component of SQL statement that allows getting data from the database and imposing order upon it. It includes the SELECT statement. This command allows getting the data out of the database to perform operations with it. When a SELECT is fired against a table or tables the result is compiled into a further temporary table, which is displayed or perhaps received by the program i.e. a front-end. -Free Content -SQL | DDL, DQL, DML, DCL and TCL Commands +- [SQL | DDL, DQL, DML, DCL and TCL Commands](https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/) diff --git a/src/roadmaps/computer-science/content/117-databases/106-dcl.md b/src/roadmaps/computer-science/content/117-databases/106-dcl.md index f3d0c2de6..020c9f3e4 100644 --- a/src/roadmaps/computer-science/content/117-databases/106-dcl.md +++ b/src/roadmaps/computer-science/content/117-databases/106-dcl.md @@ -2,5 +2,4 @@ DCL (Data Control Language): DCL includes commands such as GRANT and REVOKE which mainly deal with the rights, permissions, and other controls of the database system. -Free Content -SQL | DDL, DQL, DML, DCL and TCL Commands +- [SQL | DDL, DQL, DML, DCL and TCL Commands](https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/) diff --git a/src/roadmaps/computer-science/content/117-databases/107-locking.md b/src/roadmaps/computer-science/content/117-databases/107-locking.md index 81d3f2574..cac1039bf 100644 --- a/src/roadmaps/computer-science/content/117-databases/107-locking.md +++ b/src/roadmaps/computer-science/content/117-databases/107-locking.md @@ -2,7 +2,6 @@ Locks are used to prevent data from being modified by multiple processes at the same time. This is important because if two processes are modifying the same data at the same time, the data can become corrupted. Locks are used to prevent this from happening. -Free Content -Locking in Databases and Isolation Mechanisms -Understanding Database Lock Timeouts and Deadlocks -Row-Level Database Locks Explained - (Read vs Exclusive) +- [Locking in Databases and Isolation Mechanisms](https://medium.com/inspiredbrilliance/what-are-database-locks-1aff9117c290) +- [Understanding Database Lock Timeouts and Deadlocks](https://www.dbta.com/Columns/DBA-Corner/Understanding-Database-Lock-Timeouts-and-Deadlocks-148659.aspx) +- [Row-Level Database Locks Explained - (Read vs Exclusive)](https://www.youtube.com/watch?v=nuBi2XbHH18) diff --git a/src/roadmaps/computer-science/content/117-databases/109-acid-model.md b/src/roadmaps/computer-science/content/117-databases/109-acid-model.md index ed532d401..ae895c487 100644 --- a/src/roadmaps/computer-science/content/117-databases/109-acid-model.md +++ b/src/roadmaps/computer-science/content/117-databases/109-acid-model.md @@ -2,7 +2,6 @@ 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 -What is ACID Compliant Database? -What is ACID Compliance?: Atomicity, Consistency, Isolation -ACID Explained: Atomic, Consistent, Isolated & Durable +- [What is ACID Compliant Database?](https://retool.com/blog/whats-an-acid-compliant-database/) +- [What is ACID Compliance?: Atomicity, Consistency, Isolation](https://fauna.com/blog/what-is-acid-compliance-atomicity-consistency-isolation) +- [ACID Explained: Atomic, Consistent, Isolated & Durable](https://www.youtube.com/watch?v=yaQ5YMWkxq4) diff --git a/src/roadmaps/computer-science/content/117-databases/110-base-model.md b/src/roadmaps/computer-science/content/117-databases/110-base-model.md index fe847c927..e752d1708 100644 --- a/src/roadmaps/computer-science/content/117-databases/110-base-model.md +++ b/src/roadmaps/computer-science/content/117-databases/110-base-model.md @@ -6,5 +6,4 @@ The rise in popularity of NoSQL databases provided a flexible and fluidity with - **S**oft state - **E**ventual consistency -Free Content -ACID Model vs BASE Model For Database +- [ACID Model vs BASE Model For Database](https://www.geeksforgeeks.org/acid-model-vs-base-model-for-database/) diff --git a/src/roadmaps/computer-science/content/117-databases/111-cap-theorem.md b/src/roadmaps/computer-science/content/117-databases/111-cap-theorem.md index 8870a15da..32fa1140f 100644 --- a/src/roadmaps/computer-science/content/117-databases/111-cap-theorem.md +++ b/src/roadmaps/computer-science/content/117-databases/111-cap-theorem.md @@ -2,9 +2,8 @@ CAP is an acronym for Consistency, Availability, and Partition Tolerance. According to the CAP theorem, any distributed system can only guarantee two of the three properties at any time. You can't guarantee all three properties at once. -Free Content -What is CAP Theorem? -CAP Theorem - Wikipedia -An Illustrated Proof of the CAP Theorem -CAP Theorem and it's applications in NoSQL Databases -What is CAP Theorem? +- [What is CAP Theorem?](https://www.bmc.com/blogs/cap-theorem/) +- [CAP Theorem - Wikipedia](https://en.wikipedia.org/wiki/CAP_theorem) +- [An Illustrated Proof of the CAP Theorem](https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/) +- [CAP Theorem and its applications in NoSQL Databases](https://www.ibm.com/uk-en/cloud/learn/cap-theorem) +- [What is CAP Theorem?](https://www.youtube.com/watch?v=_RbsFXWRZ10) diff --git a/src/roadmaps/computer-science/content/117-databases/112-pacelc-theorem.md b/src/roadmaps/computer-science/content/117-databases/112-pacelc-theorem.md index e36b5c34a..3666f67d1 100644 --- a/src/roadmaps/computer-science/content/117-databases/112-pacelc-theorem.md +++ b/src/roadmaps/computer-science/content/117-databases/112-pacelc-theorem.md @@ -2,6 +2,5 @@ The PACELC Theorem is an extension of the CAP Theorem. One of the questions that CAP Theorem wasn’t able to answer was “what happens when there is no Partition, What Logical Combination then a Distributed System have?“. So to answer this, In addition to Consistency, Availability, and Partition Tolerance it also includes Latency as one of the desired properties of a Distributed System. The acronym PACELC stands for Partitioned, Availability, Consistency Else Latency, Consistency. -Free Content -PACELC Theorem - Geeks for Geeks -PACELC Theorem +- [PACELC Theorem - Geeks for Geeks](https://www.geeksforgeeks.org/pacelc-theorem/) +- [PACELC Theorem](https://www.scylladb.com/glossary/pacelc-theorem/) diff --git a/src/roadmaps/computer-science/content/117-databases/113-indexes.md b/src/roadmaps/computer-science/content/117-databases/113-indexes.md index 8f4dc6c30..075c519a5 100644 --- a/src/roadmaps/computer-science/content/117-databases/113-indexes.md +++ b/src/roadmaps/computer-science/content/117-databases/113-indexes.md @@ -2,6 +2,5 @@ An index is a data structure that you build and assign on top of an existing table that basically looks through your table and tries to analyze and summarize so that it can create shortcuts. -Free Content -An in-depth look at Database Indexing -Database Indexing Explained +- [An in-depth look at Database Indexing](https://www.freecodecamp.org/news/database-indexing-at-a-glance-bb50809d48bd/) +- [Database Indexing Explained](https://www.youtube.com/watch?v=-qNSXK7s7_w) diff --git a/src/roadmaps/computer-science/content/117-databases/114-views.md b/src/roadmaps/computer-science/content/117-databases/114-views.md index 603c7231f..4a778ae72 100644 --- a/src/roadmaps/computer-science/content/117-databases/114-views.md +++ b/src/roadmaps/computer-science/content/117-databases/114-views.md @@ -2,7 +2,6 @@ Views in SQL are kind of virtual tables. A view also has rows and columns as they are in a real table in the database. We can create a view by selecting fields from one or more tables present in the database. A View can either have all the rows of a table or specific rows based on certain condition. -Free Content -SQL | Views -Datbase Views -SQL Views - Wikipedia +- [SQL | Views](https://www.geeksforgeeks.org/sql-views/) +- [Datbase Views](https://www.ibm.com/docs/en/eamfoc/7.6.0?topic=structure-views) +- [SQL Views - Wikipedia](https://en.wikipedia.org/wiki/View_(SQL)) diff --git a/src/roadmaps/computer-science/content/117-databases/115-transactions.md b/src/roadmaps/computer-science/content/117-databases/115-transactions.md index 797c69472..d101bc1c5 100644 --- a/src/roadmaps/computer-science/content/117-databases/115-transactions.md +++ b/src/roadmaps/computer-science/content/117-databases/115-transactions.md @@ -2,5 +2,4 @@ In short, a database transaction is a sequence of multiple operations performed on a database, and all served as a single logical unit of work — taking place wholly or not at all. In other words, there's never a case where only half of the operations are performed and the results saved. -Free Content -What are Transactions? +- [What are Transactions?](https://fauna.com/blog/database-transaction) diff --git a/src/roadmaps/computer-science/content/117-databases/116-stored-procedures.md b/src/roadmaps/computer-science/content/117-databases/116-stored-procedures.md index 9e0e29060..113db2f50 100644 --- a/src/roadmaps/computer-science/content/117-databases/116-stored-procedures.md +++ b/src/roadmaps/computer-science/content/117-databases/116-stored-procedures.md @@ -2,6 +2,5 @@ Stored Procedures are created to perform one or more DML operations on Database. It is nothing but the group of SQL statements that accepts some input in the form of parameters and performs some task and may or may not returns a value. -Free Content -What is Stored Procedures in SQL ? -SQL Stored Procedures +- [What is Stored Procedures in SQL ?](https://www.geeksforgeeks.org/what-is-stored-procedures-in-sql/) +- [SQL Stored Procedures](https://www.programiz.com/sql/stored-procedures) diff --git a/src/roadmaps/computer-science/content/117-databases/117-database-federation.md b/src/roadmaps/computer-science/content/117-databases/117-database-federation.md index d7d76d68d..ee3de6ad7 100644 --- a/src/roadmaps/computer-science/content/117-databases/117-database-federation.md +++ b/src/roadmaps/computer-science/content/117-databases/117-database-federation.md @@ -2,5 +2,4 @@ Federation (or functional partitioning) splits up databases by function. The federation architecture makes several distinct physical databases appear as one logical database to end-users. -Free Content -Database Federation +- [Database Federation](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#database-federation) diff --git a/src/roadmaps/computer-science/content/117-databases/118-replication.md b/src/roadmaps/computer-science/content/117-databases/118-replication.md index 0a990866f..92476a8ec 100644 --- a/src/roadmaps/computer-science/content/117-databases/118-replication.md +++ b/src/roadmaps/computer-science/content/117-databases/118-replication.md @@ -2,6 +2,5 @@ Replication is a process that involves sharing information to ensure consistency between redundant resources such as multiple databases, to improve reliability, fault-tolerance, or accessibility. -Free Content -Database Replication -Replication (computing) +- [Database Replication](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#database-replication) +- [Replication (computing)](https://en.wikipedia.org/wiki/Replication_(computing)) diff --git a/src/roadmaps/computer-science/content/117-databases/119-sharding.md b/src/roadmaps/computer-science/content/117-databases/119-sharding.md index 9a10a6871..6fe30cd22 100644 --- a/src/roadmaps/computer-science/content/117-databases/119-sharding.md +++ b/src/roadmaps/computer-science/content/117-databases/119-sharding.md @@ -2,8 +2,7 @@ Database sharding is a method of distributing data across multiple machines. It is a horizontal scaling technique, as opposed to vertical scaling, which is scaling by adding more power to a single machine. Sharding is a common way to scale a database. -Free Content -Sharding -Sharding & Database Partitioning | System Design Basics -Database Sharding - Watch -Database Sharding in 5 minutes +- [Sharding](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#sharding) +- [Sharding & Database Partitioning | System Design Basics](https://www.youtube.com/watch?v=RynPj8C0BXA) +- [Database Sharding - Watch](https://www.youtube.com/watch?v=hdxdhCpgYo8) +- [Database Sharding in 5 minutes](https://www.youtube.com/watch?v=kSH4bt8ypOQ) diff --git a/src/roadmaps/computer-science/content/117-databases/index.md b/src/roadmaps/computer-science/content/117-databases/index.md new file mode 100644 index 000000000..b9e604751 --- /dev/null +++ b/src/roadmaps/computer-science/content/117-databases/index.md @@ -0,0 +1,7 @@ +# Databases + +A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. + +- [Oracle: What is a Database?](https://www.oracle.com/database/what-is-database/) +- [Prisma.io: What are Databases?](https://www.prisma.io/dataguide/intro/what-are-databases) +- [DBMS by Stanford](https://www.youtube.com/watch?v=D-k-h0GuFmE&list=PL9ysvtVnryGpnIj9rcIqNDxakUn6v72Hm) diff --git a/src/roadmaps/computer-science/content/117-databases/readme.md b/src/roadmaps/computer-science/content/117-databases/readme.md deleted file mode 100644 index 716ad16e0..000000000 --- a/src/roadmaps/computer-science/content/117-databases/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Databases - -A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. - -Free Content -Oracle: What is a Database? -Prisma.io: What are Databases? -DBMS by Stanford diff --git a/src/roadmaps/computer-science/content/118-networking/100-sockets.md b/src/roadmaps/computer-science/content/118-networking/100-sockets.md index 68db3b907..892ff6406 100644 --- a/src/roadmaps/computer-science/content/118-networking/100-sockets.md +++ b/src/roadmaps/computer-science/content/118-networking/100-sockets.md @@ -2,6 +2,5 @@ A socket is an interface for network communication. It is a way for two programs to communicate with each other over a network. It is a way for a client to send a request to a server and for the server to send a response back to the client. -Free Content -A Beginner's Guide to WebSockets -WebSockets in 100 Seconds & Beyond with Socket.io +- [A Beginners Guide to WebSockets](https://www.youtube.com/watch?v=8ARodQ4Wlf4) +- [WebSockets in 100 Seconds & Beyond with Socket.io](https://www.youtube.com/watch?v=1BfCnjr_Vjg) diff --git a/src/roadmaps/computer-science/content/118-networking/101-tls-https.md b/src/roadmaps/computer-science/content/118-networking/101-tls-https.md index b894b33ee..59e369909 100644 --- a/src/roadmaps/computer-science/content/118-networking/101-tls-https.md +++ b/src/roadmaps/computer-science/content/118-networking/101-tls-https.md @@ -2,6 +2,5 @@ TLS (Transport Layer Security) is a cryptographic protocol that provides privacy and data integrity between two communicating applications. It is widely used to secure HTTP, although it can be used with any protocol. TLS is often used in combination with HTTPS, which is HTTP over TLS. -Free Content -SSL and HTTPS -SSL/TLS - Cristina Formaini +- [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0) +- [SSL/TLS - Cristina Formaini](https://www.youtube.com/watch?v=Rp3iZUvXWlM) diff --git a/src/roadmaps/computer-science/content/118-networking/102-http.md b/src/roadmaps/computer-science/content/118-networking/102-http.md index 080ed22ca..bd48711ff 100644 --- a/src/roadmaps/computer-science/content/118-networking/102-http.md +++ b/src/roadmaps/computer-science/content/118-networking/102-http.md @@ -2,10 +2,9 @@ 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 -What is HTTP? -An overview of HTTP -Journey to HTTP/2 -HTTP/3 From A To Z: Core Concepts -HTTP/1 to HTTP/2 to HTTP/3 -HTTP Crash Course & Exploration +- [What is HTTP?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) +- [An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) +- [Journey to HTTP/2](https://kamranahmed.info/blog/2016/08/13/http-in-depth) +- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/) +- [HTTP/1 to HTTP/2 to HTTP/3](https://www.youtube.com/watch?v=a-sBfyiXysI) +- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0) diff --git a/src/roadmaps/computer-science/content/118-networking/103-dns.md b/src/roadmaps/computer-science/content/118-networking/103-dns.md index c11c882f7..8f174dc84 100644 --- a/src/roadmaps/computer-science/content/118-networking/103-dns.md +++ b/src/roadmaps/computer-science/content/118-networking/103-dns.md @@ -2,9 +2,8 @@ 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 -What is DNS? -How DNS works (comic) -DNS and How does it Work? -DNS Records -Complete DNS mini-series +- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/) +- [How DNS works (comic)](https://howdns.works/) +- [DNS and How does it Work?](https://www.youtube.com/watch?v=Wj0od2ag5sk) +- [DNS Records](https://www.youtube.com/watch?v=7lxgpKh_fRY) +- [Complete DNS mini-series](https://www.youtube.com/watch?v=zEmUuNFBgN8&list=PLTk5ZYSbd9MhMmOiPhfRJNW7bhxHo4q-K) diff --git a/src/roadmaps/computer-science/content/118-networking/104-tcp-ip-model.md b/src/roadmaps/computer-science/content/118-networking/104-tcp-ip-model.md index 558773ed4..e40ca4a36 100644 --- a/src/roadmaps/computer-science/content/118-networking/104-tcp-ip-model.md +++ b/src/roadmaps/computer-science/content/118-networking/104-tcp-ip-model.md @@ -2,8 +2,7 @@ The OSI and TCP/IP model is used to help the developer to design their system for interoperability. The OSI model has 7 layers while the TCP/IP model has a more summarized form of the OSI model only consisting 4 layers. This is important if you're are trying to design a system to communicate with other systems. -Free Content -Cloudflare - What is the OSI model -Geeksforgeeks - Layers of OSI model -Geeksforgeeks - TCP/IP model -TCP/IP and the OSI Model Explained! +- [Cloudflare - What is the OSI model](https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/) +- [Geeksforgeeks - Layers of OSI model](https://www.geeksforgeeks.org/layers-of-osi-model/) +- [Geeksforgeeks - TCP/IP model](https://www.geeksforgeeks.org/tcp-ip-model/) +- [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0) diff --git a/src/roadmaps/computer-science/content/118-networking/105-osi-model.md b/src/roadmaps/computer-science/content/118-networking/105-osi-model.md index 558773ed4..e40ca4a36 100644 --- a/src/roadmaps/computer-science/content/118-networking/105-osi-model.md +++ b/src/roadmaps/computer-science/content/118-networking/105-osi-model.md @@ -2,8 +2,7 @@ The OSI and TCP/IP model is used to help the developer to design their system for interoperability. The OSI model has 7 layers while the TCP/IP model has a more summarized form of the OSI model only consisting 4 layers. This is important if you're are trying to design a system to communicate with other systems. -Free Content -Cloudflare - What is the OSI model -Geeksforgeeks - Layers of OSI model -Geeksforgeeks - TCP/IP model -TCP/IP and the OSI Model Explained! +- [Cloudflare - What is the OSI model](https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/) +- [Geeksforgeeks - Layers of OSI model](https://www.geeksforgeeks.org/layers-of-osi-model/) +- [Geeksforgeeks - TCP/IP model](https://www.geeksforgeeks.org/tcp-ip-model/) +- [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0) diff --git a/src/roadmaps/computer-science/content/118-networking/index.md b/src/roadmaps/computer-science/content/118-networking/index.md new file mode 100644 index 000000000..2cfa93124 --- /dev/null +++ b/src/roadmaps/computer-science/content/118-networking/index.md @@ -0,0 +1,9 @@ +# Networking + +Networking is the process of connecting two or more computing devices together for the purpose of sharing data. In a data network, shared data may be as simple as a printer or as complex as a global financial transaction. + +If you have networking experience or want to be a reliability engineer or operations engineer, expect questions from these topics. Otherwise, this is just good to know. + +- [Computer Networking Course - Network Engineering](https://www.youtube.com/watch?v=qiQR5rTSshw) +- [Khan Academy - Networking](https://www.khanacademy.org/computing/code-org/computers-and-the-internet) +- [Networking Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j) diff --git a/src/roadmaps/computer-science/content/118-networking/readme.md b/src/roadmaps/computer-science/content/118-networking/readme.md deleted file mode 100644 index 1e4ea99bb..000000000 --- a/src/roadmaps/computer-science/content/118-networking/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Networking - -Networking is the process of connecting two or more computing devices together for the purpose of sharing data. In a data network, shared data may be as simple as a printer or as complex as a global financial transaction. - -If you have networking experience or want to be a reliability engineer or operations engineer, expect questions from these topics. Otherwise, this is just good to know. - -Computer Networking Course - Network Engineering -Khan Academy - Networking -Networking Video Series (21 videos) diff --git a/src/roadmaps/computer-science/content/119-security/100-public-key-cryptography.md b/src/roadmaps/computer-science/content/119-security/100-public-key-cryptography.md index 88b5af40a..a998eed28 100644 --- a/src/roadmaps/computer-science/content/119-security/100-public-key-cryptography.md +++ b/src/roadmaps/computer-science/content/119-security/100-public-key-cryptography.md @@ -2,7 +2,6 @@ Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic algorithms based on mathematical problems termed one-way functions. -Free Content -Public-key cryptography - Wikipedia -Public Key Cryptography - Computerphile -Public Key Cryptography: RSA Encryption Algorithm +- [Public-key cryptography - Wikipedia](https://en.wikipedia.org/wiki/Public-key_cryptography) +- [Public Key Cryptography - Computerphile](https://www.youtube.com/watch?v=GSIDS_lvRv4) +- [Public Key Cryptography: RSA Encryption Algorithm](https://www.youtube.com/watch?v=wXB-V_Keiu8) diff --git a/src/roadmaps/computer-science/content/119-security/101-hashing-encryption-encoding.md b/src/roadmaps/computer-science/content/119-security/101-hashing-encryption-encoding.md index 5951bf2f7..b0fc808f9 100644 --- a/src/roadmaps/computer-science/content/119-security/101-hashing-encryption-encoding.md +++ b/src/roadmaps/computer-science/content/119-security/101-hashing-encryption-encoding.md @@ -6,5 +6,4 @@ Encryption is a two-way function that takes an input and produces an output. The Encoding is a two-way function that takes an input and produces an output. The output is called encoded text. The encoded text is a unique representation of the input. The encoded text is deterministic, meaning that the same input will always produce the same encoded text. The encoded text is reversible, meaning that it is possible to go from the encoded text back to the original input. The encoded text is not collision-resistant, meaning that it is possible to find two different inputs that produce the same encoded text. -Free Content -Encoding, Encryption and Hashing -- What's the Difference? +- [Encoding, Encryption and Hashing -- Whats the Difference?](https://www.youtube.com/watch?v=-bAnBzvMLig) diff --git a/src/roadmaps/computer-science/content/119-security/102-hashing-algorithms.md b/src/roadmaps/computer-science/content/119-security/102-hashing-algorithms.md index 57efdd011..01e1292a8 100644 --- a/src/roadmaps/computer-science/content/119-security/102-hashing-algorithms.md +++ b/src/roadmaps/computer-science/content/119-security/102-hashing-algorithms.md @@ -2,7 +2,6 @@ Hashing algorithms are used to generate a unique value for a given input. This value is called a hash. Hashing algorithms are used to verify the integrity of data, to store passwords, and to generate unique identifiers for data. -Free Content -Hashing Algorithms and Security - Computerphile -Top Hashing Algorithms In Cryptography | MD5 and SHA 256 Algorithms Expalined | Simplilearn -SHA: Secure Hashing Algorithm - Computerphile +- [Hashing Algorithms and Security - Computerphile](https://www.youtube.com/watch?v=b4b8ktEV4Bg) +- [Top Hashing Algorithms In Cryptography | MD5 and SHA 256 Algorithms Expalined | Simplilearn](https://www.youtube.com/watch?v=Plp4F3ZfC7A) +- [SHA: Secure Hashing Algorithm - Computerphile](https://www.youtube.com/watch?v=DMtFhACPnTY) diff --git a/src/roadmaps/computer-science/content/119-security/103-owasp-top-10.md b/src/roadmaps/computer-science/content/119-security/103-owasp-top-10.md index 78864e413..4c2795a47 100644 --- a/src/roadmaps/computer-science/content/119-security/103-owasp-top-10.md +++ b/src/roadmaps/computer-science/content/119-security/103-owasp-top-10.md @@ -2,8 +2,7 @@ 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 -Wikipedia - OWASP -OWASP Web Application Security Testing Checklist -OWASP Top 10 Security Risks -OWASP Cheatsheets +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Web Application Security Testing Checklist](https://github.com/0xRadi/OWASP-Web-Checklist) +- [OWASP Top 10 Security Risks](https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) diff --git a/src/roadmaps/computer-science/content/119-security/index.md b/src/roadmaps/computer-science/content/119-security/index.md new file mode 100644 index 000000000..9802fe48c --- /dev/null +++ b/src/roadmaps/computer-science/content/119-security/index.md @@ -0,0 +1,11 @@ +# Security + +Web security refers to the protective measures taken by the developers to protect the web applications from threats that could affect the business. + +- [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Web Application Security Testing Checklist](https://github.com/0xRadi/OWASP-Web-Checklist) +- [OWASP Top 10 Security Risks](https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) +- [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) diff --git a/src/roadmaps/computer-science/content/119-security/readme.md b/src/roadmaps/computer-science/content/119-security/readme.md deleted file mode 100644 index 139515145..000000000 --- a/src/roadmaps/computer-science/content/119-security/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# Security - -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 -MIT 6.858 Computer Systems Security, Fall 2014 -Why HTTPS Matters -Wikipedia - OWASP -OWASP Web Application Security Testing Checklist -OWASP Top 10 Security Risks -OWASP Cheatsheets -Content Security Policy (CSP) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/100-how-cpu-executes-programs.md b/src/roadmaps/computer-science/content/120-how-computers-work/100-how-cpu-executes-programs.md index efc07924a..9b671aac0 100644 --- a/src/roadmaps/computer-science/content/120-how-computers-work/100-how-cpu-executes-programs.md +++ b/src/roadmaps/computer-science/content/120-how-computers-work/100-how-cpu-executes-programs.md @@ -1,4 +1,3 @@ # How CPU Executes Programs? -Free Content -How CPU executes a program +- [How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/101-how-computers-calculate.md b/src/roadmaps/computer-science/content/120-how-computers-work/101-how-computers-calculate.md index 523c60ae9..dafdeed77 100644 --- a/src/roadmaps/computer-science/content/120-how-computers-work/101-how-computers-calculate.md +++ b/src/roadmaps/computer-science/content/120-how-computers-work/101-how-computers-calculate.md @@ -1,4 +1,3 @@ # How Computers Calculate? -Free Content -How computers calculate - ALU +- [How computers calculate - ALU](https://youtu.be/1I5ZMmrOfnA) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/102-registers-and-ram.md b/src/roadmaps/computer-science/content/120-how-computers-work/102-registers-and-ram.md index e28d34cc4..64cdc21d7 100644 --- a/src/roadmaps/computer-science/content/120-how-computers-work/102-registers-and-ram.md +++ b/src/roadmaps/computer-science/content/120-how-computers-work/102-registers-and-ram.md @@ -8,5 +8,4 @@ Registers are the high-speed accessible storage elements. The processor accesses Primary memory or RAM is a volatile memory, meaning the primary memory data exist when the system's power is on, and the data vanishes as the system is switched off. The primary memory contains the data required by the currently executing program in the CPU. If the data required by the processor is not in primary memory, then the data is transferred from secondary storage to primary memory, and then it is fetched by the processor. -Free Content -Registers and RAM +- [Registers and RAM](https://youtu.be/fpnE6UAfbtU) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/103-instructions-and-programs.md b/src/roadmaps/computer-science/content/120-how-computers-work/103-instructions-and-programs.md index 44116d121..b8afc3488 100644 --- a/src/roadmaps/computer-science/content/120-how-computers-work/103-instructions-and-programs.md +++ b/src/roadmaps/computer-science/content/120-how-computers-work/103-instructions-and-programs.md @@ -1,4 +1,3 @@ # Instructions and Programs -Free Content -Instructions and Programs +- [Instructions and Programs](https://youtu.be/zltgXvg6r3k) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/104-cpu-cache.md b/src/roadmaps/computer-science/content/120-how-computers-work/104-cpu-cache.md index bc1472ddc..f227651c0 100644 --- a/src/roadmaps/computer-science/content/120-how-computers-work/104-cpu-cache.md +++ b/src/roadmaps/computer-science/content/120-how-computers-work/104-cpu-cache.md @@ -1,5 +1,4 @@ # CPU Cache -Free Content -MIT 6.004 L15: The Memory Hierarchy -MIT 6.004 L16: Cache Issues +- [MIT 6.004 L15: The Memory Hierarchy](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24) +- [MIT 6.004 L16: Cache Issues](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/index.md b/src/roadmaps/computer-science/content/120-how-computers-work/index.md new file mode 100644 index 000000000..b51f3d73e --- /dev/null +++ b/src/roadmaps/computer-science/content/120-how-computers-work/index.md @@ -0,0 +1,9 @@ +# How Computers Work? + +Computers are everywhere. They are in our phones, our cars, our homes, and even in our pockets. But how do they actually work? How do they take in information, and how do they output information? + +- [How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA) +- [How computers calculate - ALU](https://youtu.be/1I5ZMmrOfnA) +- [Registers and RAM](https://youtu.be/fpnE6UAfbtU) +- [The Central Processing Unit (CPU)](https://youtu.be/FZGugFqdr60) +- [Instructions and Programs](https://youtu.be/zltgXvg6r3k) diff --git a/src/roadmaps/computer-science/content/120-how-computers-work/readme.md b/src/roadmaps/computer-science/content/120-how-computers-work/readme.md deleted file mode 100644 index ad6a3465e..000000000 --- a/src/roadmaps/computer-science/content/120-how-computers-work/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# How Computers Work? - -Computers are everywhere. They are in our phones, our cars, our homes, and even in our pockets. But how do they actually work? How do they take in information, and how do they output information? - -Free Content -How CPU executes a program -How computers calculate - ALU -Registers and RAM -The Central Processing Unit (CPU) -Instructions and Programs diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/100-process-forking.md b/src/roadmaps/computer-science/content/121-processes-and-threads/100-process-forking.md index 8a5d002c0..93776ce29 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/100-process-forking.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/100-process-forking.md @@ -2,7 +2,6 @@ Process forking is a way to create a new process from an existing process. The new process is a copy of the existing process. The new process is called a child process and the existing process is called a parent process. -Free Content -Understanding fork() system call for new process creation -fork() and exec() System Calls -The fork() function in C +- [Understanding fork() system call for new process creation](https://www.youtube.com/watch?v=PwxTbksJ2fo) +- [fork() and exec() System Calls](https://www.youtube.com/watch?v=IFEFVXvjiHY) +- [The fork() function in C](https://www.youtube.com/watch?v=cex9XrZCU14) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/101-memory-management.md b/src/roadmaps/computer-science/content/121-processes-and-threads/101-memory-management.md index 1ec4c0372..583e82375 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/101-memory-management.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/101-memory-management.md @@ -2,6 +2,5 @@ Memory management is the process of allocating and deallocating memory. It is a very important part of any programming language. -Free Content -MIT 6.004 L15: The Memory Hierarchy -MIT 6.004 L16: Cache Issues +- [MIT 6.004 L15: The Memory Hierarchy](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24) +- [MIT 6.004 L16: Cache Issues](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/102-lock-mutex-semaphore.md b/src/roadmaps/computer-science/content/121-processes-and-threads/102-lock-mutex-semaphore.md index e0ead8d7f..a97e2119b 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/102-lock-mutex-semaphore.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/102-lock-mutex-semaphore.md @@ -6,7 +6,6 @@ A mutex is the same as a lock but it can be system wide (shared by multiple proc A semaphore does the same as a mutex but allows x number of threads to enter, this can be used for example to limit the number of cpu, io or ram intensive tasks running at the same time. -Free Content -What is the difference between lock, mutex and semaphore? -What is a Semaphore -Mutex vs Semaphore +- [What is the difference between lock, mutex and semaphore?](https://stackoverflow.com/questions/2332765/what-is-the-difference-between-lock-mutex-and-semaphore) +- [What is a Semaphore](https://stackoverflow.com/questions/34519/what-is-a-semaphore/40238#40238) +- [Mutex vs Semaphore](https://www.geeksforgeeks.org/mutex-vs-semaphore/) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/103-concurrency-in-multiple-cores.md b/src/roadmaps/computer-science/content/121-processes-and-threads/103-concurrency-in-multiple-cores.md index 970c6b146..fb89cc197 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/103-concurrency-in-multiple-cores.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/103-concurrency-in-multiple-cores.md @@ -1,5 +1,4 @@ # Concurrency in Multiple Cores -Free Content -What is the difference between multicore and concurrent programming? -Concurrency in Multicore systems +- [What is the difference between multicore and concurrent programming?](https://stackoverflow.com/questions/5372861/what-is-the-difference-between-multicore-and-concurrent-programming) +- [Concurrency in Multicore systems](https://cs.stackexchange.com/questions/140793/concurrency-in-multiple-core) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/104-cpu-interrupts.md b/src/roadmaps/computer-science/content/121-processes-and-threads/104-cpu-interrupts.md index 2210b330e..341985392 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/104-cpu-interrupts.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/104-cpu-interrupts.md @@ -2,5 +2,4 @@ CPU Interrupts are a way for the CPU to communicate with the rest of the computer. They are a way for the CPU to tell the rest of the computer that it needs to do something. For example, if the CPU is running a program and it needs to read from the keyboard, it will send an interrupt to the keyboard to tell it to send the data to the CPU. The CPU will then wait for the keyboard to send the data and then continue running the program. -Free Content -Video on Interrupts +- [Video on Interrupts](https://youtu.be/iKlAWIKEyuw) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/105-processes-vs-threads.md b/src/roadmaps/computer-science/content/121-processes-and-threads/105-processes-vs-threads.md index 83ea94bb0..6a861b6b0 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/105-processes-vs-threads.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/105-processes-vs-threads.md @@ -2,6 +2,5 @@ Processes and threads are the basic building blocks of a computer program. They are the smallest units of execution in a program. A process is an instance of a program that is being executed. A thread is a sequence of instructions within a process that can be executed independently of other code. -Free Content -What's the difference between Process and a Thread? -Operating Systems and System Programming +- [Whats the difference between Process and a Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread) +- [Operating Systems and System Programming](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c) diff --git a/src/roadmaps/computer-science/content/121-processes-and-threads/readme.md b/src/roadmaps/computer-science/content/121-processes-and-threads/index.md similarity index 50% rename from src/roadmaps/computer-science/content/121-processes-and-threads/readme.md rename to src/roadmaps/computer-science/content/121-processes-and-threads/index.md index 83ea94bb0..6a861b6b0 100644 --- a/src/roadmaps/computer-science/content/121-processes-and-threads/readme.md +++ b/src/roadmaps/computer-science/content/121-processes-and-threads/index.md @@ -2,6 +2,5 @@ Processes and threads are the basic building blocks of a computer program. They are the smallest units of execution in a program. A process is an instance of a program that is being executed. A thread is a sequence of instructions within a process that can be executed independently of other code. -Free Content -What's the difference between Process and a Thread? -Operating Systems and System Programming +- [Whats the difference between Process and a Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread) +- [Operating Systems and System Programming](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c) diff --git a/src/roadmaps/computer-science/content/122-kd-trees.md b/src/roadmaps/computer-science/content/122-kd-trees.md index 8881b419c..d22750290 100644 --- a/src/roadmaps/computer-science/content/122-kd-trees.md +++ b/src/roadmaps/computer-science/content/122-kd-trees.md @@ -2,6 +2,5 @@ K-D Trees are a data structure that allow for fast nearest neighbor search in high dimensional spaces. They are a generalization of binary search trees, and are used in a variety of applications, including computer vision and computational geometry. -Free Content -K-D Tree Algorithm -K-d Trees - Computerphile +- [K-D Tree Algorithm](https://www.youtube.com/watch?v=Y4ZgLlDfKDg) +- [K-d Trees - Computerphile](https://www.youtube.com/watch?v=BK5x7IUTIyU) diff --git a/src/roadmaps/computer-science/content/123-skip-lists.md b/src/roadmaps/computer-science/content/123-skip-lists.md index 93dcb7379..e7a5f6f15 100644 --- a/src/roadmaps/computer-science/content/123-skip-lists.md +++ b/src/roadmaps/computer-science/content/123-skip-lists.md @@ -2,6 +2,5 @@ Skip lists are a data structure that allows you to perform operations on a sorted list in O(log n) time. Skip lists are a probabilistic data structure, which means that the probability of a certain operation taking a certain amount of time is a certain value. In the case of skip lists, the probability of an operation taking O(log n) time is 1. -Free Content -Randomization: Skip Lists -Skip Lists - Wikipedia +- [Randomization: Skip Lists](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) +- [Skip Lists - Wikipedia](https://en.wikipedia.org/wiki/Skip_list) diff --git a/src/roadmaps/computer-science/content/readme.md b/src/roadmaps/computer-science/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/computer-science/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/design-system/content/100-design-system-basics/100-what-is-design-system.md b/src/roadmaps/design-system/content/100-design-system-basics/100-what-is-design-system.md index 87d116862..39fe77446 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/100-what-is-design-system.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/100-what-is-design-system.md @@ -2,7 +2,7 @@ A Design System is the single source of truth which groups all the elements that will allow the teams to design, realize and develop a product. -Everything you need to know about Design Systems -Design Systems 101 -A comprehensive guide to design systems +- [Everything you need to know about Design Systems](https://uxdesign.cc/everything-you-need-to-know-about-design-systems-54b109851969) +- [Design Systems 101](https://www.nngroup.com/articles/design-systems-101/) +- [A comprehensive guide to design systems](https://www.invisionapp.com/inside-design/guide-to-design-systems/) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/101-need-of-design-system.md b/src/roadmaps/design-system/content/100-design-system-basics/101-need-of-design-system.md index 9869428a2..ec86f51ca 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/101-need-of-design-system.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/101-need-of-design-system.md @@ -2,8 +2,8 @@ Having a solid design system speeds up your work by making the product team more efficient, and it creates consistency and harmony within the product and brand ecosystem. A strong design system takes the burden off individual designers to think through commonly recurring design problems. With a full library of pre-approved elements, designers can focus on bigger problems like creating seamless, intuitive flows that delight users. That kind of efficiency pays huge dividends over time. -Design Systems, when and how much? -Why You Need a Strong Design System (and How to Build One) -On Design Systems: Sell The Output, Not The Workflow +- [Design Systems, when and how much?](https://www.youtube.com/watch?v=Hx02SaL_IH0) +- [Why You Need a Strong Design System (and How to Build One)](https://www.drawbackwards.com/blog/why-you-need-a-strong-design-system-and-how-to-build-one) +- [On Design Systems: Sell The Output, Not The Workflow](https://www.smashingmagazine.com/2016/05/design-systems-responsive-design-sell-output-not-workflow/) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/102-design-system-vs-component-library.md b/src/roadmaps/design-system/content/100-design-system-basics/102-design-system-vs-component-library.md index 9148ebdbf..663db4efe 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/102-design-system-vs-component-library.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/102-design-system-vs-component-library.md @@ -2,8 +2,8 @@ A component library is just a collection of visuals i.e. colours, button stylings, fonts, etc. A Design System takes it to the next level by including standards and documentation around the look and usage of each component. The Design System acts as the single-source of truth. -A Design System: So Much More Than A Component Library -Design System vs UI Component Library vs Brand Style Guide -Design Systems vs Pattern Libraries vs Style Guides vs Component Libraries +- [A Design System: So Much More Than A Component Library](https://www.architech.ca/a-design-system-so-much-more-than-a-component-library) +- [Design System vs UI Component Library vs Brand Style Guide](https://prototype.net/blog/design-system-component-library-style-guide) +- [Design Systems vs Pattern Libraries vs Style Guides vs Component Libraries](https://www.uxpin.com/studio/blog/design-systems-vs-pattern-libraries-vs-style-guides-whats-difference/) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/103-atomic-design.md b/src/roadmaps/design-system/content/100-design-system-basics/103-atomic-design.md index f2e8870cd..b96f63d1c 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/103-atomic-design.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/103-atomic-design.md @@ -2,7 +2,7 @@ Atomic design (by Brad Frost) is a mental model to help you think of user interfaces as a cohesive whole and a collection of parts at the same time. Through the comparison to atoms, molecules, and organisms, we can think of the design of our UI as a composition of self-containing modules put together. -Atomic Design Principles & Methodology 101 -Atomic Design Methodology -Atomic Design and UI Components: Theory to Practice +- [Atomic Design Principles & Methodology 101](https://xd.adobe.com/ideas/process/ui-design/atomic-design-principles-methodology-101/) +- [Atomic Design Methodology](https://atomicdesign.bradfrost.com/chapter-2/) +- [Atomic Design and UI Components: Theory to Practice](https://blog.bitsrc.io/atomic-design-and-ui-components-theory-to-practice-f200db337c24) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/105-stakeholders-involved.md b/src/roadmaps/design-system/content/100-design-system-basics/105-stakeholders-involved.md index 67dbed2b4..3ee141fed 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/105-stakeholders-involved.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/105-stakeholders-involved.md @@ -12,4 +12,4 @@ Building an effective design system is not an individual responsibility, you nee - **Leaders:** (VPs and directors) to champion and align the vision throughout the company including up to executive leadership -Designing the Design System +- [Designing the Design System](https://www.designbetter.co/design-systems-handbook/designing-design-system) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/106-design-system-examples.md b/src/roadmaps/design-system/content/100-design-system-basics/106-design-system-examples.md index 25b8abb81..9ee311bf2 100644 --- a/src/roadmaps/design-system/content/100-design-system-basics/106-design-system-examples.md +++ b/src/roadmaps/design-system/content/100-design-system-basics/106-design-system-examples.md @@ -1,11 +1,9 @@ # Design System Examples -Material Design (Google) -Carbon Design System (IBM) -Atlassian Design System -Polaris Design System (Shopify) -Gov.uk Design System - - -Collection of Open Source Design Systems +- [Material Design (Google)](https://material.io/) +- [Carbon Design System (IBM)](https://carbondesignsystem.com/) +- [Atlassian Design System](https://atlassian.design/) +- [Polaris Design System (Shopify)](https://polaris.shopify.com/) +- [Gov.uk Design System](https://design-system.service.gov.uk/) +- [Collection of Open Source Design Systems](https://github.com/alexpate/awesome-design-systems) diff --git a/src/roadmaps/design-system/content/100-design-system-basics/index.md b/src/roadmaps/design-system/content/100-design-system-basics/index.md new file mode 100644 index 000000000..986cf0454 --- /dev/null +++ b/src/roadmaps/design-system/content/100-design-system-basics/index.md @@ -0,0 +1,11 @@ +# Design System Basics + +A design system is a set of standards to manage design at scale by reducing redundancy while creating a shared language and visual consistency across different pages and channels. + +- [Design Systems 101](https://www.nngroup.com/articles/design-systems-101/) +- [What is a Design System? Design Systems 101 for Designers](https://www.youtube.com/watch?v=wc5krC28ynQ) +- [A comprehensive guide to design systems](https://www.invisionapp.com/inside-design/guide-to-design-systems/) +- [Everything you need to know about Design Systems](https://uxdesign.cc/everything-you-need-to-know-about-design-systems-54b109851969) + + + diff --git a/src/roadmaps/design-system/content/100-design-system-basics/readme.md b/src/roadmaps/design-system/content/100-design-system-basics/readme.md deleted file mode 100644 index aa0f5fc8d..000000000 --- a/src/roadmaps/design-system/content/100-design-system-basics/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Design System Basics - -A design system is a set of standards to manage design at scale by reducing redundancy while creating a shared language and visual consistency across different pages and channels. - -Design Systems 101 -What is a Design System? Design Systems 101 for Designers -A comprehensive guide to design systems -Everything you need to know about Design Systems - - - diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/101-component-library.md b/src/roadmaps/design-system/content/101-design-system-terminology/101-component-library.md index 6bad4c86f..62356ee81 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/101-component-library.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/101-component-library.md @@ -2,6 +2,6 @@ A component library is a collection of all the components used in a website, software or app. Some of the common tools to showcase and browse components in a component library include are given below: -Pattern Lab -Fractal -Storybook +- [Pattern Lab](https://patternlab.io/) +- [Fractal](https://fractal.build/) +- [Storybook](https://storybook.js.org/) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/102-design-language.md b/src/roadmaps/design-system/content/101-design-system-terminology/102-design-language.md index 175f0c758..598189acc 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/102-design-language.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/102-design-language.md @@ -2,10 +2,10 @@ A design language or design vocabulary is an overarching scheme or style that guides the design of a complement of products or architectural settings, creating a coherent design system for styling. -What is a Design Language.. really? -How to Develop a Design Language -What Actually Constitutes Design Language? -Visual Design Language: The Building Blocks Of Design +- [What is a Design Language.. really?](https://medium.com/thinking-design/what-is-a-design-language-really-cd1ef87be793) +- [How to Develop a Design Language](https://xd.adobe.com/ideas/principles/web-design/how-to-develop-design-language/) +- [What Actually Constitutes Design Language?](https://www.uxpin.com/studio/blog/design-language/) +- [Visual Design Language: The Building Blocks Of Design](https://www.smashingmagazine.com/2020/03/visual-design-language-building-blocks/) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/103-governance.md b/src/roadmaps/design-system/content/101-design-system-terminology/103-governance.md index 9684d5c07..ed63e7ff0 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/103-governance.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/103-governance.md @@ -2,10 +2,10 @@ Governance is a framework for clarifying roles, responsibilities, and authority over decisions. Having that clarity ensures that decisions for the design system funnel smoothly through the governance process -Governance is a design system’s friend -Design System Governance – Scale Your Design -Governance by design: Building successful design systems -Team Models for Scaling a Design System +- [Governance is a design system’s friend](https://zeroheight.com/blog/governance-is-a-design-systems-friend) +- [Design System Governance – Scale Your Design](https://www.uxpin.com/studio/blog/design-system-governance/) +- [Governance by design: Building successful design systems](https://rangle.io/blog/governance-by-design-building-successful-design-systems/) +- [Team Models for Scaling a Design System](https://medium.com/eightshapes-llc/team-models-for-scaling-a-design-system-2cf9d03be6a0) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/104-guidelines.md b/src/roadmaps/design-system/content/101-design-system-terminology/104-guidelines.md index e4b99fd34..88f453c35 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/104-guidelines.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/104-guidelines.md @@ -2,4 +2,4 @@ Design guidelines are sets of recommendations on how to apply design principles to provide a positive user experience. Designers use such guidelines to judge how to adopt principles such as intuitiveness, learnability, efficiency and consistency so they can create compelling designs and meet and exceed user needs. -Design Guidelines +- [Design Guidelines](https://www.interaction-design.org/literature/topics/design-guidelines) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/106-pilot.md b/src/roadmaps/design-system/content/101-design-system-terminology/106-pilot.md index 63ac66755..539865c44 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/106-pilot.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/106-pilot.md @@ -2,4 +2,4 @@ Pilots are one of the best ways to put your design system through its paces, especially before the design system even gets to a v1. Like television pilots help test audience reactions to a series concept without investing significant resources to create the whole thing, application pilots are a good foundation for ensuring your design system’s design and code are battle-tested. -Design Systems: Pilots & Scorecards +- [Design Systems: Pilots & Scorecards](https://superfriendly.com/design-systems/articles/design-systems-pilots-scorecards/) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/107-token.md b/src/roadmaps/design-system/content/101-design-system-terminology/107-token.md index b2024be55..8586f467a 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/107-token.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/107-token.md @@ -2,5 +2,5 @@ Design system tokens are the style values of UI elements such as color, typography, spacing, shadows, etc., that are used across products and capable of being converted to a format for any platform (web, mobile, desktop). Tokens are building blocks of the design system—think of them as sub atoms, the smallest pieces of style values that allow designers to create styles for a product. -What Are Design Tokens? +- [What Are Design Tokens?](https://xd.adobe.com/ideas/principles/design-systems/what-are-design-tokens/) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/108-ui-kit.md b/src/roadmaps/design-system/content/101-design-system-terminology/108-ui-kit.md index d713c3fec..90bde2a2b 100644 --- a/src/roadmaps/design-system/content/101-design-system-terminology/108-ui-kit.md +++ b/src/roadmaps/design-system/content/101-design-system-terminology/108-ui-kit.md @@ -3,5 +3,5 @@ As it relates to a design system, a UI Kit is a representation of coded components created in a way that designers who don’t know code can create interface mockups. Examples of UI kits are Sketch libraries and [Figma design systems](https://www.figma.com/blog/how-to-build-your-design-system-in-figma/). -Design System vs UI Kit -Your sketch library is not a design system +- [Design System vs UI Kit](https://uigstudio.com/insights/design-system-vs-ui-kit) +- [Your sketch library is not a design system](http://bradfrost.com/blog/post/your-sketch-library-is-not-a-design-system/) diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/index.md b/src/roadmaps/design-system/content/101-design-system-terminology/index.md new file mode 100644 index 000000000..c96db42fc --- /dev/null +++ b/src/roadmaps/design-system/content/101-design-system-terminology/index.md @@ -0,0 +1,6 @@ +# Terminology + +Design systems can be tricky if you don’t know what certain words mean. Have a look at the roadmap nodes as well as follow the link below to read the glossary. + +- [Design Systems Glossary](https://web.archive.org/web/20220620075140/https://superfriendly.com/design-systems/glossary/) + diff --git a/src/roadmaps/design-system/content/101-design-system-terminology/readme.md b/src/roadmaps/design-system/content/101-design-system-terminology/readme.md deleted file mode 100644 index 6bd1cd7e4..000000000 --- a/src/roadmaps/design-system/content/101-design-system-terminology/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Terminology - -Design systems can be tricky if you don’t know what certain words mean. Have a look at the roadmap nodes as well as follow the link below to read the glossary. - -Design Systems Glossary - diff --git a/src/roadmaps/design-system/content/102-making-a-design-system/100-from-scratch.md b/src/roadmaps/design-system/content/102-making-a-design-system/100-from-scratch.md index 8d38707f9..0eefd5942 100644 --- a/src/roadmaps/design-system/content/102-making-a-design-system/100-from-scratch.md +++ b/src/roadmaps/design-system/content/102-making-a-design-system/100-from-scratch.md @@ -2,5 +2,5 @@ If you are building a Design System from Scratch, you may skip the "Existing Design Analysis" node of the roadmap and start with "Creating Design Language". -Create a Design System with Figma - Full Course +- [Create a Design System with Figma - Full Course](https://www.youtube.com/watch?v=RYDiDpW2VkM) diff --git a/src/roadmaps/design-system/content/102-making-a-design-system/101-from-existing-design.md b/src/roadmaps/design-system/content/102-making-a-design-system/101-from-existing-design.md index baa600e2a..e00506f2b 100644 --- a/src/roadmaps/design-system/content/102-making-a-design-system/101-from-existing-design.md +++ b/src/roadmaps/design-system/content/102-making-a-design-system/101-from-existing-design.md @@ -2,4 +2,4 @@ If you are creating a Design System from pre-existing product design, there is an additional step to perform the existing design analysis, understand the existing design process, perform a visual audit, identify design elements and components and so on. -Create a Design System with Figma - Full Course +- [Create a Design System with Figma - Full Course](https://www.youtube.com/watch?v=RYDiDpW2VkM) diff --git a/src/roadmaps/design-system/content/102-making-a-design-system/index.md b/src/roadmaps/design-system/content/102-making-a-design-system/index.md new file mode 100644 index 000000000..d75821c51 --- /dev/null +++ b/src/roadmaps/design-system/content/102-making-a-design-system/index.md @@ -0,0 +1,9 @@ +# Making a Design System + +First step in building a design system is identifying [if you even need a design system](https://sparkbox.com/foundry/when_not_to_use_a_design_system). + +- [Introducing Design Systems Into Chaos - Diana Mounter, GitHub](https://www.youtube.com/watch?v=FZSi1bK-BRM) +- [Design Systems, when and how much?](https://www.youtube.com/watch?v=Hx02SaL_IH0) +- [Design Systems: Step-by-Step Guide to Creating Your Own](https://www.uxpin.com/create-design-system-guide/) +- [Does My Organization Need a Design System?](https://www.method.com/insights/does-my-organization-need-a-design-system/) +- [Create a Design System with Figma - Full Course](https://www.youtube.com/watch?v=RYDiDpW2VkM) diff --git a/src/roadmaps/design-system/content/102-making-a-design-system/readme.md b/src/roadmaps/design-system/content/102-making-a-design-system/readme.md deleted file mode 100644 index 246a70fa1..000000000 --- a/src/roadmaps/design-system/content/102-making-a-design-system/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Making a Design System - -First step in building a design system is identifying [if you even need a design system](https://sparkbox.com/foundry/when_not_to_use_a_design_system). - -Introducing Design Systems Into Chaos - Diana Mounter, GitHub -Design Systems, when and how much? -Design Systems: Step-by-Step Guide to Creating Your Own -Does My Organization Need a Design System? -Create a Design System with Figma - Full Course diff --git a/src/roadmaps/design-system/content/103-existing-design-analysis/readme.md b/src/roadmaps/design-system/content/103-existing-design-analysis/index.md similarity index 100% rename from src/roadmaps/design-system/content/103-existing-design-analysis/readme.md rename to src/roadmaps/design-system/content/103-existing-design-analysis/index.md diff --git a/src/roadmaps/design-system/content/104-design-language/100-brand/readme.md b/src/roadmaps/design-system/content/104-design-language/100-brand/index.md similarity index 100% rename from src/roadmaps/design-system/content/104-design-language/100-brand/readme.md rename to src/roadmaps/design-system/content/104-design-language/100-brand/index.md diff --git a/src/roadmaps/design-system/content/104-design-language/101-guidelines/100-accessibility.md b/src/roadmaps/design-system/content/104-design-language/101-guidelines/100-accessibility.md index 9375cc9bb..a95fede12 100644 --- a/src/roadmaps/design-system/content/104-design-language/101-guidelines/100-accessibility.md +++ b/src/roadmaps/design-system/content/104-design-language/101-guidelines/100-accessibility.md @@ -2,9 +2,8 @@ Guidelines for how you approach accessibility and how you leverage colour, hierarchy and assistive technologies to help your users. -Free Content -Introduction to Web Accessibility -What is Accessibility? by Mozilla -Accessibility Principles -WebAIM's Website (Web Accessibility In Mind) -WAVE Web Accessibility Evaluation Tool +- [Introduction to Web Accessibility](https://www.w3.org/WAI/fundamentals/accessibility-intro/) +- [What is Accessibility? by Mozilla](https://developer.mozilla.org/en-US/docs/Learn/Accessibility/What_is_accessibility) +- [Accessibility Principles](https://www.w3.org/WAI/fundamentals/accessibility-principles/) +- [WebAIMs Website (Web Accessibility In Mind)](https://webaim.org/) +- [WAVE Web Accessibility Evaluation Tool](https://wave.webaim.org/) diff --git a/src/roadmaps/design-system/content/104-design-language/101-guidelines/readme.md b/src/roadmaps/design-system/content/104-design-language/101-guidelines/index.md similarity index 100% rename from src/roadmaps/design-system/content/104-design-language/101-guidelines/readme.md rename to src/roadmaps/design-system/content/104-design-language/101-guidelines/index.md diff --git a/src/roadmaps/design-system/content/104-design-language/102-logo/readme.md b/src/roadmaps/design-system/content/104-design-language/102-logo/index.md similarity index 100% rename from src/roadmaps/design-system/content/104-design-language/102-logo/readme.md rename to src/roadmaps/design-system/content/104-design-language/102-logo/index.md diff --git a/src/roadmaps/design-system/content/104-design-language/index.md b/src/roadmaps/design-system/content/104-design-language/index.md new file mode 100644 index 000000000..eedd442f2 --- /dev/null +++ b/src/roadmaps/design-system/content/104-design-language/index.md @@ -0,0 +1,8 @@ +# Design Language + +Like any language, a design language is a methodical way of communicating with your audience through your approach to product design. It’s the cornerstone of consistent customer experiences. + +- [What is a Design Language.. really?](https://medium.com/thinking-design/what-is-a-design-language-really-cd1ef87be793) +- [How to Develop a Design Language](https://xd.adobe.com/ideas/principles/web-design/how-to-develop-design-language/) +- [What Actually Constitutes Design Language?](https://www.uxpin.com/studio/blog/design-language/) +- [Visual Design Language: The Building Blocks Of Design](https://www.smashingmagazine.com/2020/03/visual-design-language-building-blocks/) diff --git a/src/roadmaps/design-system/content/104-design-language/readme.md b/src/roadmaps/design-system/content/104-design-language/readme.md deleted file mode 100644 index 71ac63a88..000000000 --- a/src/roadmaps/design-system/content/104-design-language/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Design Language - -Like any language, a design language is a methodical way of communicating with your audience through your approach to product design. It’s the cornerstone of consistent customer experiences. - -What is a Design Language.. really? -How to Develop a Design Language -What Actually Constitutes Design Language? -Visual Design Language: The Building Blocks Of Design diff --git a/src/roadmaps/design-system/content/105-design-tokens/100-layout/readme.md b/src/roadmaps/design-system/content/105-design-tokens/100-layout/index.md similarity index 100% rename from src/roadmaps/design-system/content/105-design-tokens/100-layout/readme.md rename to src/roadmaps/design-system/content/105-design-tokens/100-layout/index.md diff --git a/src/roadmaps/design-system/content/105-design-tokens/101-color/readme.md b/src/roadmaps/design-system/content/105-design-tokens/101-color/index.md similarity index 100% rename from src/roadmaps/design-system/content/105-design-tokens/101-color/readme.md rename to src/roadmaps/design-system/content/105-design-tokens/101-color/index.md diff --git a/src/roadmaps/design-system/content/105-design-tokens/102-iconography/readme.md b/src/roadmaps/design-system/content/105-design-tokens/102-iconography/index.md similarity index 100% rename from src/roadmaps/design-system/content/105-design-tokens/102-iconography/readme.md rename to src/roadmaps/design-system/content/105-design-tokens/102-iconography/index.md diff --git a/src/roadmaps/design-system/content/105-design-tokens/103-typography/readme.md b/src/roadmaps/design-system/content/105-design-tokens/103-typography/index.md similarity index 100% rename from src/roadmaps/design-system/content/105-design-tokens/103-typography/readme.md rename to src/roadmaps/design-system/content/105-design-tokens/103-typography/index.md diff --git a/src/roadmaps/design-system/content/105-design-tokens/readme.md b/src/roadmaps/design-system/content/105-design-tokens/index.md similarity index 55% rename from src/roadmaps/design-system/content/105-design-tokens/readme.md rename to src/roadmaps/design-system/content/105-design-tokens/index.md index e95e1766b..04aedd5eb 100644 --- a/src/roadmaps/design-system/content/105-design-tokens/readme.md +++ b/src/roadmaps/design-system/content/105-design-tokens/index.md @@ -2,4 +2,4 @@ Variables that store values for the base layer of your design system, like colour and typography. They’re used in components, so changes on this level will resonate throughout the whole system. -What Are Design Tokens? +- [What Are Design Tokens?](https://xd.adobe.com/ideas/principles/design-systems/what-are-design-tokens/) diff --git a/src/roadmaps/design-system/content/106-core-components/readme.md b/src/roadmaps/design-system/content/106-core-components/index.md similarity index 100% rename from src/roadmaps/design-system/content/106-core-components/readme.md rename to src/roadmaps/design-system/content/106-core-components/index.md diff --git a/src/roadmaps/design-system/content/107-tooling/100-development/readme.md b/src/roadmaps/design-system/content/107-tooling/100-development/index.md similarity index 100% rename from src/roadmaps/design-system/content/107-tooling/100-development/readme.md rename to src/roadmaps/design-system/content/107-tooling/100-development/index.md diff --git a/src/roadmaps/design-system/content/107-tooling/101-design/readme.md b/src/roadmaps/design-system/content/107-tooling/101-design/index.md similarity index 100% rename from src/roadmaps/design-system/content/107-tooling/101-design/readme.md rename to src/roadmaps/design-system/content/107-tooling/101-design/index.md diff --git a/src/roadmaps/design-system/content/107-tooling/readme.md b/src/roadmaps/design-system/content/107-tooling/index.md similarity index 100% rename from src/roadmaps/design-system/content/107-tooling/readme.md rename to src/roadmaps/design-system/content/107-tooling/index.md diff --git a/src/roadmaps/design-system/content/108-project-management/100-task-management/readme.md b/src/roadmaps/design-system/content/108-project-management/100-task-management/index.md similarity index 100% rename from src/roadmaps/design-system/content/108-project-management/100-task-management/readme.md rename to src/roadmaps/design-system/content/108-project-management/100-task-management/index.md diff --git a/src/roadmaps/design-system/content/108-project-management/101-communications/readme.md b/src/roadmaps/design-system/content/108-project-management/101-communications/index.md similarity index 100% rename from src/roadmaps/design-system/content/108-project-management/101-communications/readme.md rename to src/roadmaps/design-system/content/108-project-management/101-communications/index.md diff --git a/src/roadmaps/design-system/content/108-project-management/102-analytics/readme.md b/src/roadmaps/design-system/content/108-project-management/102-analytics/index.md similarity index 100% rename from src/roadmaps/design-system/content/108-project-management/102-analytics/readme.md rename to src/roadmaps/design-system/content/108-project-management/102-analytics/index.md diff --git a/src/roadmaps/design-system/content/108-project-management/readme.md b/src/roadmaps/design-system/content/108-project-management/index.md similarity index 100% rename from src/roadmaps/design-system/content/108-project-management/readme.md rename to src/roadmaps/design-system/content/108-project-management/index.md diff --git a/src/roadmaps/design-system/content/readme.md b/src/roadmaps/design-system/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/design-system/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/devops/content/100-language/100-python.md b/src/roadmaps/devops/content/100-language/100-python.md index 7380e43f0..a9c400a27 100644 --- a/src/roadmaps/devops/content/100-language/100-python.md +++ b/src/roadmaps/devops/content/100-language/100-python.md @@ -8,10 +8,10 @@ Python is a multi-paradigm language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedural or object-oriented programmatic ways. Python is frequently recommended as the first language new coders should learn, because of its focus on readability, consistency, and ease of use. This comes with some downsides, as the language is not especially performant in most production tasks. -Free Content -Python Website -Python Getting Started -Automate the Boring Stuff -W3Schools - Python Tutorial -Python Crash Course -Codecademy - Learn Python 3 +- [Python Roadmap](/python) +- [Python Website](https://www.python.org/) +- [Python Getting Started](https://www.python.org/about/gettingstarted/) +- [Automate the Boring Stuff](https://automatetheboringstuff.com/) +- [W3Schools - Python Tutorial ](https://www.w3schools.com/python/) +- [Python Crash Course](https://ehmatthes.github.io/pcc/) +- [Codecademy - Learn Python 3](https://www.codecademy.com/learn/learn-python-3) diff --git a/src/roadmaps/devops/content/100-language/101-ruby.md b/src/roadmaps/devops/content/100-language/101-ruby.md index 8c8caf6fe..0fff7dc9f 100644 --- a/src/roadmaps/devops/content/100-language/101-ruby.md +++ b/src/roadmaps/devops/content/100-language/101-ruby.md @@ -2,7 +2,6 @@ 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 Website -Learn Ruby in 20 minutes -Learn Ruby | Codecademy +- [Ruby Website](https://www.ruby-lang.org/en/) +- [Learn Ruby in 20 minutes](https://www.ruby-lang.org/en/documentation/quickstart/) +- [Learn Ruby | Codecademy](https://www.codecademy.com/learn/learn-ruby) diff --git a/src/roadmaps/devops/content/100-language/102-javascript.md b/src/roadmaps/devops/content/100-language/102-javascript.md index 324d6511e..0c206838d 100644 --- a/src/roadmaps/devops/content/100-language/102-javascript.md +++ b/src/roadmaps/devops/content/100-language/102-javascript.md @@ -8,28 +8,13 @@ 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 - -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -Codecademy - Learn JavaScript -JavaScript Crash Course for Beginners - -Node.js Crash Course -Node.js Tutorial for Beginners - - - -# Node.js - -Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine and executes JavaScript code outside a web browser, which was designed to build scalable network applications. It allows you to run JavaScript on the server. - -Free Content - -W3Schools – Node.js Tutorial -What is NPM? -Official Documentation \ No newline at end of file +- [JavaScript Roadmap](/javascript) +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [Codecademy - Learn JavaScript](https://www.codecademy.com/learn/introduction-to-javascript) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c) +- [Node.js Crash Course](https://www.youtube.com/watch?v=fBNz5xF-Kx4) +- [Node.js Tutorial for Beginners](https://www.youtube.com/watch?v=TlB_eWDSMt4) +- [W3Schools – Node.js Tutorial](https://www.w3schools.com/nodejs/) +- [What is NPM?](https://www.w3schools.com/nodejs/nodejs_npm.asp) +- [Official Documentation](https://nodejs.dev/en/learn/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/100-language/103-go.md b/src/roadmaps/devops/content/100-language/103-go.md index f19d3bf08..927e0bea7 100644 --- a/src/roadmaps/devops/content/100-language/103-go.md +++ b/src/roadmaps/devops/content/100-language/103-go.md @@ -8,10 +8,10 @@ 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 -A Tour of Go – Go Basics -Go Reference Documentation -Go by Example - annotated example programs -Learn Go | Codecademy -W3Schools Go Tutorial -Making a RESTful JSON API in Go +- [Go Roadmap](/golang) +- [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) +- [Go Reference Documentation](https://go.dev/doc/) +- [Go by Example - annotated example programs](https://gobyexample.com/) +- [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) +- [W3Schools Go Tutorial ](https://www.w3schools.com/go/) +- [Making a RESTful JSON API in Go](https://thenewstack.io/make-a-restful-json-api-go/) diff --git a/src/roadmaps/devops/content/100-language/104-rust.md b/src/roadmaps/devops/content/100-language/104-rust.md index 7a5822c98..0dcdc28e9 100644 --- a/src/roadmaps/devops/content/100-language/104-rust.md +++ b/src/roadmaps/devops/content/100-language/104-rust.md @@ -2,6 +2,5 @@ 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 -The Rust Programming Language - online book -Rust by Example - collection of runnable examples +- [The Rust Programming Language - online book](https://doc.rust-lang.org/book/) +- [Rust by Example - collection of runnable examples](https://doc.rust-lang.org/stable/rust-by-example/index.html) diff --git a/src/roadmaps/devops/content/100-language/readme.md b/src/roadmaps/devops/content/100-language/index.md similarity index 100% rename from src/roadmaps/devops/content/100-language/readme.md rename to src/roadmaps/devops/content/100-language/index.md diff --git a/src/roadmaps/devops/content/101-os-concepts/100-networking.md b/src/roadmaps/devops/content/101-os-concepts/100-networking.md index 2c121eedb..80af095df 100644 --- a/src/roadmaps/devops/content/101-os-concepts/100-networking.md +++ b/src/roadmaps/devops/content/101-os-concepts/100-networking.md @@ -4,7 +4,6 @@ Computer networking refers to interconnected computing devices that can exchange Begin by studying the [OSI Model](https://en.wikipedia.org/wiki/OSI_model). This model will assist in constructing an understanding of the linked topics, and help you contextualize the items linked to the Networking, Security, and Protocols node. Higher level networking concepts may be implemented and named differently across cloud providers. Don't let this confuse you - the basics of TCP/IP are useful and used in the same ways across all implementations. -Free Content -What is Computer Networking? -Full Networking Course -OSI Model Explained +- [What is Computer Networking?](https://aws.amazon.com/what-is/computer-networking/) +- [Full Networking Course](https://youtu.be/IPvYjXCsTg8) +- [OSI Model Explained](https://www.youtube.com/watch?v=dV8mjZd1OtU) diff --git a/src/roadmaps/devops/content/101-os-concepts/101-io-management.md b/src/roadmaps/devops/content/101-os-concepts/101-io-management.md index 56e71bd62..f2bcd3c80 100644 --- a/src/roadmaps/devops/content/101-os-concepts/101-io-management.md +++ b/src/roadmaps/devops/content/101-os-concepts/101-io-management.md @@ -2,7 +2,6 @@ One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touchpad, disk drives, display adapters, USB devices, Bit-mapped screens, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers, etc. -Free Content -Operating System - I/O Hardware -IO Management -Basics of OS (I/O Structure) +- [Operating System - I/O Hardware](https://www.tutorialspoint.com/operating_system/os_io_hardware.htm) +- [IO Management](https://www.omscs-notes.com/operating-systems/io-management/) +- [Basics of OS (I/O Structure)](https://www.youtube.com/watch?v=F18RiREDkwE) diff --git a/src/roadmaps/devops/content/101-os-concepts/102-virtualization.md b/src/roadmaps/devops/content/101-os-concepts/102-virtualization.md index ffca9da41..358236f7f 100644 --- a/src/roadmaps/devops/content/101-os-concepts/102-virtualization.md +++ b/src/roadmaps/devops/content/101-os-concepts/102-virtualization.md @@ -3,7 +3,6 @@ Virtualization is the creation of a virtual -- rather than actual -- version of something, such as an operating system (OS), a server, a storage device or network resources. It uses software that simulates hardware functionality to create a virtual system. This practice allows IT organizations to operate multiple operating systems, more than one virtual system and various applications on a single server. -Free Content -What is Virtualization? and its types? -What is Hypervisor and VM? -Containers vs VM \ No newline at end of file +- [What is Virtualization? and its types?](https://www.techtarget.com/searchitoperations/definition/virtualization) +- [What is Hypervisor and VM?](https://opensource.com/resources/virtualization) +- [Containers vs VM](https://www.atlassian.com/microservices/cloud-computing/containers-vs-vms) \ No newline at end of file diff --git a/src/roadmaps/devops/content/101-os-concepts/103-memory-storage.md b/src/roadmaps/devops/content/101-os-concepts/103-memory-storage.md index 71c41af1a..0cc76bad8 100644 --- a/src/roadmaps/devops/content/101-os-concepts/103-memory-storage.md +++ b/src/roadmaps/devops/content/101-os-concepts/103-memory-storage.md @@ -4,5 +4,5 @@ The term Memory can be defined as a collection of data in a specific format. It To achieve a degree of multiprogramming and proper utilization of memory, memory management is important. There are several memory management methods, reflecting various approaches, and the effectiveness of each algorithm depends on the situation. -Demystifying memory management in modern programming languages -Memory Management in Operating System +- [Demystifying memory management in modern programming languages](https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd) +- [Memory Management in Operating System](https://www.geeksforgeeks.org/memory-management-in-operating-system/) diff --git a/src/roadmaps/devops/content/101-os-concepts/104-file-system.md b/src/roadmaps/devops/content/101-os-concepts/104-file-system.md index c5e80a43a..6289d49df 100644 --- a/src/roadmaps/devops/content/101-os-concepts/104-file-system.md +++ b/src/roadmaps/devops/content/101-os-concepts/104-file-system.md @@ -2,5 +2,4 @@ A file is a named collection of related information recorded on secondary storage such as magnetic disks, magnetic tapes, and optical disks. Generally, a file is a sequence of bits, bytes, lines, or records whose meaning is defined by the file's creator and user. -Free Content -Operating System - File System +- [Operating System - File System](https://www.tutorialspoint.com/operating_system/os_file_system.htm) diff --git a/src/roadmaps/devops/content/101-os-concepts/105-sockets.md b/src/roadmaps/devops/content/101-os-concepts/105-sockets.md index c3dcfe8e4..38d24d800 100644 --- a/src/roadmaps/devops/content/101-os-concepts/105-sockets.md +++ b/src/roadmaps/devops/content/101-os-concepts/105-sockets.md @@ -4,8 +4,7 @@ Socket is an endpoint of a two way **communication** link between **two differen e.g. `http://192.168.0.1:8080` -Free Content -What are Sockets? -Types of Sockets -Port vs Socket -Socket.io Library Bidirectional and low-latency communication for every platform \ No newline at end of file +- [What are Sockets?](https://www.geeksforgeeks.org/socket-in-computer-network/) +- [Types of Sockets](https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm) +- [Port vs Socket](https://www.baeldung.com/cs/port-vs-socket) +- [Socket.io Library Bidirectional and low-latency communication for every platform](https://socket.io/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/101-os-concepts/106-posix.md b/src/roadmaps/devops/content/101-os-concepts/106-posix.md index 9774536e5..1a78c775a 100644 --- a/src/roadmaps/devops/content/101-os-concepts/106-posix.md +++ b/src/roadmaps/devops/content/101-os-concepts/106-posix.md @@ -8,7 +8,6 @@ So, in this case, when we want to interact with any of these streams (through a POSIX also adds a standard for exit codes, filesystem semantics, and several other command line utility API conventions. -Free Content -POSIX standard by IEEE -Summary of some POSIX implementations -A guide to POSIX +- [POSIX standard by IEEE](https://pubs.opengroup.org/onlinepubs/9699919799/) +- [Summary of some POSIX implementations](https://unix.stackexchange.com/a/220877) +- [A guide to POSIX](https://www.baeldung.com/linux/posix) diff --git a/src/roadmaps/devops/content/101-os-concepts/107-processes.md b/src/roadmaps/devops/content/101-os-concepts/107-processes.md index abfac46a8..d9ca80577 100644 --- a/src/roadmaps/devops/content/101-os-concepts/107-processes.md +++ b/src/roadmaps/devops/content/101-os-concepts/107-processes.md @@ -6,8 +6,7 @@ A process means program in execution. It generally takes an input, processes it * Foreground processes * Background processes -Free Content -Intro to Process Management -Process Management in Linux -Process related commands in Linux -Process vs Thread +- [Intro to Process Management](https://www.geeksforgeeks.org/introduction-of-process-management/) +- [Process Management in Linux](https://www.geeksforgeeks.org/process-management-in-linux/) +- [Process related commands in Linux](https://www.geeksforgeeks.org/processes-in-linuxunix/) +- [Process vs Thread](https://www.geeksforgeeks.org/difference-between-process-and-thread/) diff --git a/src/roadmaps/devops/content/101-os-concepts/108-startup-management.md b/src/roadmaps/devops/content/101-os-concepts/108-startup-management.md index 134248716..6d131efec 100644 --- a/src/roadmaps/devops/content/101-os-concepts/108-startup-management.md +++ b/src/roadmaps/devops/content/101-os-concepts/108-startup-management.md @@ -4,7 +4,6 @@ It has following syntax: `$ service [service_name] [action]` e.g. `$ service ssh start` -Free Content -Linux Booting Process -What is init.d? -What are Daemons in Linux? \ No newline at end of file +- [Linux Booting Process](https://www.freecodecamp.org/news/the-linux-booting-process-6-steps-described-in-detail/) +- [What is init.d?](https://www.geeksforgeeks.org/what-is-init-d-in-linux-service-management/) +- [What are Daemons in Linux?](https://itsfoss.com/linux-daemons/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/101-os-concepts/109-service-management.md b/src/roadmaps/devops/content/101-os-concepts/109-service-management.md index a1808b345..9ddf635fd 100644 --- a/src/roadmaps/devops/content/101-os-concepts/109-service-management.md +++ b/src/roadmaps/devops/content/101-os-concepts/109-service-management.md @@ -4,7 +4,6 @@ e.g. `$ systemctl start [service-name]`, `$ systemctl poweroff` -Free Content -What is systemd? and its commands -init.d vs systemd -Why Systemd as a replacement of init.d? \ No newline at end of file +- [What is systemd? and its commands](https://www.geeksforgeeks.org/linux-systemd-and-its-components/) +- [init.d vs systemd](https://uace.github.io/learning/init-vs-systemd-what-is-an-init-daemon) +- [Why Systemd as a replacement of init.d?](https://www.tecmint.com/systemd-replaces-init-in-linux/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/101-os-concepts/110-threads-concurrency.md b/src/roadmaps/devops/content/101-os-concepts/110-threads-concurrency.md index b69280781..138d4003a 100644 --- a/src/roadmaps/devops/content/101-os-concepts/110-threads-concurrency.md +++ b/src/roadmaps/devops/content/101-os-concepts/110-threads-concurrency.md @@ -8,23 +8,9 @@ Each thread has its own program counter, stack, and set of registers. But the th * `fork` * `join` -Free Content -Process Synchronization -What is Thread in OS? -Process vs Thread & Multi-Threading - -# Concurrency in OS - -`Concurrency` is the execution of the multiple instruction sequences at the same time. It happens in the operating system when there are several process threads running in parallel. It helps in techniques like **coordinating execution of processes**, memory allocation and execution scheduling for maximizing throughput. - -The running process threads always communicate with each other through shared memory or message passing. Concurrency results in sharing of resources result in problems like deadlocks and resources starvation. - -**Key Terminologies:** -* mutex -* critical section -* Deadlock - -Free Content -What Concurrency in OS? -Threads vs Concurrency -How Concurrency is achieved in Threads \ No newline at end of file +- [Process Synchronization](https://www.geeksforgeeks.org/introduction-of-process-synchronization/) +- [What is Thread in OS?](https://www.geeksforgeeks.org/thread-in-operating-system/) +- [Process vs Thread & Multi-Threading](https://www.scaler.com/topics/operating-system/threads-in-operating-system/) +- [What Concurrency in OS?](https://www.geeksforgeeks.org/concurrency-in-operating-system/) +- [Threads vs Concurrency](https://medium.com/@azizomarck/how-is-concurrency-different-from-parallelism-334b6d5c869a) +- [How Concurrency is achieved in Threads](https://medium.com/@akhandmishra/operating-system-threads-and-concurrency-aec2036b90f8) \ No newline at end of file diff --git a/src/roadmaps/devops/content/101-os-concepts/index.md b/src/roadmaps/devops/content/101-os-concepts/index.md new file mode 100644 index 000000000..8f98ee171 --- /dev/null +++ b/src/roadmaps/devops/content/101-os-concepts/index.md @@ -0,0 +1,7 @@ +# Operating System + +An 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. + +- [What is an operating system?](https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/) +- [Operating Systems: Crash Course Computer Science #18](https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse) +- [Introduction to Operating System](https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1) diff --git a/src/roadmaps/devops/content/101-os-concepts/readme.md b/src/roadmaps/devops/content/101-os-concepts/readme.md deleted file mode 100644 index 8ca3121f7..000000000 --- a/src/roadmaps/devops/content/101-os-concepts/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Operating System - -An 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 -What is an operating system? -Operating Systems: Crash Course Computer Science #18 -Introduction to Operating System diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/100-windows.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/100-windows.md index 6e91cc53f..4ba6acd5d 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/100-windows.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/100-windows.md @@ -2,5 +2,5 @@ Windows is a graphical user interface (GUI) based operating system developed by Microsoft. It is a hybrid kernel-based proprietary operating system. According to a survey, till April 2022, windows is the most popular operating system in the world with a 75% market share. -Windows Official Site -Windows Documentation for Developers +- [Windows Official Site](http://microsoft.com/windows) +- [Windows Documentation for Developers](https://learn.microsoft.com/en-us/windows/) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/102-ubuntu.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/102-ubuntu.md index a61c21c0f..d52fe1f4f 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/102-ubuntu.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/102-ubuntu.md @@ -4,10 +4,10 @@ Debian is a free and open-source Linux distribution developed by the Debian Proj Ubuntu is a free and open-source Linux distribution based on Debian. Ubuntu is available in three versions Desktop, Server and Core. -Debian Website -Official Debian Documentation -Debian Installation Guide -Ubuntu Website -Ubuntu Documentation -Install Ubuntu Desktop Documentation -Getting Started with Ubuntu Tutorials +- [Debian Website](https://www.debian.org/) +- [Official Debian Documentation](https://www.debian.org/doc/) +- [Debian Installation Guide](https://www.debian.org/releases/stable/installmanual) +- [Ubuntu Website](https://ubuntu.com/) +- [Ubuntu Documentation](https://help.ubuntu.com/) +- [Install Ubuntu Desktop Documentation](https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview) +- [Getting Started with Ubuntu Tutorials](https://itsfoss.com/getting-started-with-ubuntu/) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/103-suse-linux.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/103-suse-linux.md index 2b016a7fc..b3ca35d05 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/103-suse-linux.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/103-suse-linux.md @@ -2,6 +2,6 @@ openSUSE is a free to use Linux distribution aimed to promote the use of Linux everywhere. openSUSE is released in two versions Leap and Tumbleweed -openSUSE Linux Website -openSUSE Documentation -Unofficial openSUSE Getting Started Guide +- [openSUSE Linux Website](https://www.opensuse.org/) +- [openSUSE Documentation](https://en.opensuse.org/Main_Page) +- [Unofficial openSUSE Getting Started Guide](https://opensuse-guide.org/) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/104-rhel.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/104-rhel.md index 58aafc40e..90b9e38d3 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/104-rhel.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/104-rhel.md @@ -6,7 +6,7 @@ There are several distributions of Linux that are based on RHEL, or that have be RHEL derivatives are often used in enterprise environments because they offer the stability and reliability of RHEL, but with the added benefit of being free or lower-cost alternatives. -Red Hat Enterprise Linux Website -RHEL Documentation -RHEL Getting Started Guides -What is Red Hat Enterprise Linux (RHEL) - Red Hat +- [Red Hat Enterprise Linux Website](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) +- [RHEL Documentation](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/) +- [RHEL Getting Started Guides](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux/get-started) +- [What is Red Hat Enterprise Linux (RHEL) - Red Hat](https://www.redhat.com/en/topics/linux/what-is-rhel) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/107-free-bsd.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/107-free-bsd.md index 34bce29bc..3ee0f69bd 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/107-free-bsd.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/107-free-bsd.md @@ -2,7 +2,7 @@ FreeBSD is a free and open-source Unix-like operating system including many features such as preemptive multitasking, memory protection, virtual memory, and multi-user facilities. -FreeBSD Website -Official FreeBSD Documentation -FreeBSD Handbook -FreeBSD Resources for Newbies +- [FreeBSD Website](https://www.freebsd.org/) +- [Official FreeBSD Documentation](https://docs.freebsd.org/en/) +- [FreeBSD Handbook](https://docs.freebsd.org/en/books/handbook/) +- [FreeBSD Resources for Newbies ](https://www.freebsd.org/projects/newbies/) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/108-open-bsd.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/108-open-bsd.md index 3f7ee11e2..0153f16d6 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/108-open-bsd.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/108-open-bsd.md @@ -2,7 +2,7 @@ OpenBSD is a free and open-source Unix-like operating system, focussed on portability, standardization, correctness, proactive security and integrated cryptography. The popular software application [OpenSSH](https://www.openssh.com/) is developed by from OpenBSD -OpenBSD Website -Official OpenBSD Documentation -OpenBSD Handbook -OpenBSD Installation Guide +- [OpenBSD Website](https://www.openbsd.org/) +- [Official OpenBSD Documentation](https://man.openbsd.org/search) +- [OpenBSD Handbook](https://www.openbsdhandbook.com/) +- [OpenBSD Installation Guide](https://www.openbsd.org/faq/faq4.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/109-net-bsd.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/109-net-bsd.md index 5569f4ffb..dcb180567 100644 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/109-net-bsd.md +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/109-net-bsd.md @@ -2,6 +2,6 @@ NetBSD is a free, fast, secure, and highly portable Unix-like Open Source operating system. It is available for a wide range of platforms, from large-scale servers and powerful desktop systems to handheld and embedded devices. -NetBSD Website -Official NetBSD Documentation -NetBSD Guide +- [NetBSD Website](https://netbsd.org/) +- [Official NetBSD Documentation](https://netbsd.org/docs/) +- [NetBSD Guide](https://netbsd.org/docs/guide/en/index.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/index.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/index.md new file mode 100644 index 000000000..b2d71b2b1 --- /dev/null +++ b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/index.md @@ -0,0 +1,10 @@ +# Operating system +**An Operating system serves as a bridge between a computer's user and its hardware. An operating system's function is to offer a setting in which a user can conveniently and effectively run programmes.** +In simple terms we can say that and Operating System (OS) is an interface between a computer user and computer hardware. +An OS permits software programmes to communicate with a computer's hardware, The **kernel** is the name of Piece of software that houses the fundamental elements of **Operating System.** + +- [All you need to know about OS.](https://www.javatpoint.com/os-tutorial) +- [Learn Operating Systems](https://www.tutorialspoint.com/operating_system/os_overview.htm) +- [Operating Systems tutorials.](https://www.geeksforgeeks.org/introduction-of-operating-system-set-1/) +- [What are Operating Systems?](https://www.youtube.com/watch?v=pVzRTmdd9j0) +- [Operating Systems!](https://www.youtube.com/watch?v=vBURTt97EkA&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O) diff --git a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/readme.md b/src/roadmaps/devops/content/102-managing-servers/100-operating-system/readme.md deleted file mode 100644 index 21e36fd4a..000000000 --- a/src/roadmaps/devops/content/102-managing-servers/100-operating-system/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Operating system -**An Operating system serves as a bridge between a computer's user and its hardware. An operating system's function is to offer a setting in which a user can conveniently and effectively run programmes.** -In simple terms we can say that and Operating System (OS) is an interface between a computer user and computer hardware. -An OS permits software programmes to communicate with a computer's hardware, The **kernel** is the name of Piece of software that houses the fundamental elements of **Operating System.** - -Free Content -All you need to know about OS. -Learn Operating Systems -Operating Systems tutorials. -What are Operating Systems? -Operating Systems! diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-screen-multiplexer.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-screen-multiplexer.md index 903f8139d..ae6727d4d 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-screen-multiplexer.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-screen-multiplexer.md @@ -4,5 +4,5 @@ Screen is a full-screen window manager that multiplexes a physical terminal See `man screen` or `screen -h` for further information -Screen Cheat Sheet -Screen User's Manual +- [Screen Cheat Sheet](https://kapeli.com/cheat_sheets/screen.docset/Contents/Resources/Documents/index) +- [Screen Users Manual](https://www.gnu.org/software/screen/manual/screen.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-terminal-multiplexers.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-terminal-multiplexers.md index b36d5dfc0..0d57cb4fb 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-terminal-multiplexers.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-terminal-multiplexers.md @@ -2,7 +2,5 @@ Terminal multiplexers are programs that allow us to [multiplex](https://en.wikipedia.org/wiki/Multiplexing) a terminal into several sub-processes or terminals inside a single terminal session, this means that we can have multiple open sessions using a single login session to a local or remote machine. -Free Content - -Terminal Multiplexer -Terminal Multiplexers +- [Terminal Multiplexer](https://en.wikipedia.org/wiki/Terminal_multiplexer) +- [Terminal Multiplexers](https://linuxcommand.org/lc3_adv_termmux.php) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/101-tmux-multiplexer.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/101-tmux-multiplexer.md index 6cdd0c1f6..28b47edde 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/101-tmux-multiplexer.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/101-tmux-multiplexer.md @@ -6,5 +6,5 @@ When tmux is started it creates a new session with a single window and displays See `man tmux` further information -Tmux Documentation -Tmux Cheat Sheet +- [Tmux Documentation](https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html) +- [Tmux Cheat Sheet](https://tmuxcheatsheet.com/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-ps.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-ps.md index fc99f5af2..e9f971bf3 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-ps.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-ps.md @@ -4,7 +4,7 @@ The ps utility displays a header line, followed by lines containing information See `man ps` further information -ps Documentation -ps Cheat Sheet -Linux Crash Course - The ps Command +- [ps Documentation](https://man7.org/linux/man-pages/man1/ps.1.html) +- [ps Cheat Sheet](https://www.sysadmin.md/ps-cheatsheet.html) +- [Linux Crash Course - The ps Command](https://www.youtube.com/watch?v=wYwGNgsfN3I) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-top.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-top.md index 325872b05..4487bbe6e 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-top.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-top.md @@ -4,5 +4,5 @@ The top program periodically displays a sorted list of system processes. The de See `man top` further information. -top Documentation -top Cheat Sheet +- [top Documentation](https://man7.org/linux/man-pages/man1/top.1.html) +- [top Cheat Sheet](https://gist.github.com/ericandrewlewis/4983670c508b2f6b181703df43438c37) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/103-htop.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/103-htop.md index 21b664f63..a194676d2 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/103-htop.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/103-htop.md @@ -2,5 +2,5 @@ htop is a cross-platform ncurses-based process. It is similar to top, but allows you to scroll vertically and horizontally, and interact using a pointing device (mouse). You can observe all processes running on the system, along with their command line arguments, as well as view them in a tree format, select multiple processes and act on them all at once. -htop Documentation -htop Cheat Sheet +- [htop Documentation](https://www.man7.org/linux/man-pages/man1/htop.1.html) +- [htop Cheat Sheet](https://www.maketecheasier.com/power-user-guide-htop/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-atop.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-atop.md index 199775c27..3fe3260ac 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-atop.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-atop.md @@ -2,5 +2,5 @@ The program atop is an interactive monitor to view the load on a Linux system. It shows the occupation of the most critical hardware resources (from a performance point of view) on system level, i.e. cpu, memory, disk and network. -atop Documentation -atop Command Guide +- [atop Documentation](https://linux.die.net/man/1/atop) +- [atop Command Guide](https://www.digitalocean.com/community/tutorials/atop-command-in-linux) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-bash-scripting.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-bash-scripting.md index 6c2cd11b5..737c9d1ff 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-bash-scripting.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-bash-scripting.md @@ -8,11 +8,10 @@ You actually use GUI shells all the time. For example, Windows 10 is based on th With a CLI shell like Bash, you type commands into the program to directly control your computer's OS. Opening up the terminal on your Mac or command line in Linux will look similar to consoles and integrated development environments (IDEs) for other programming languages such as R, Ruby, or Python. You can type commands directly in the command line or run Bash scripts to perform longer and more complex tasks. -Free Content -The Shell Scripting Tutorial -Writing Shell Scripts -Shell Scripting for Beginners -A guide to Bash -The Bash Hackers Wiki -Bash Shell Scripting Guide -Codecademy - Learn Bash Scripting +- [The Shell Scripting Tutorial](https://www.shellscript.sh/) +- [Writing Shell Scripts](https://linuxcommand.org/lc3_writing_shell_scripts.php) +- [Shell Scripting for Beginners](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/) +- [A guide to Bash](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html) +- [The Bash Hackers Wiki](https://wiki.bash-hackers.org/) +- [Bash Shell Scripting Guide](https://rudrakshi.hashnode.dev/bash-shell-scripting-guide) +- [Codecademy - Learn Bash Scripting](https://www.codecademy.com/learn/bash-scripting) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-editors.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-editors.md index fe4969567..d9ba1dfc5 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-editors.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-editors.md @@ -8,33 +8,12 @@ Vim is a highly configurable text editor built to make creating and changing any Vim ships with `vimtutor` that is a tutor designed to describe enough of the Vim commands that you will be able to easily use Vim as an all-purpose editor. -Free Content -Vim -Vim help files -Vim Tips Wiki -Vim Adventures - -## Nano - -GNU nano is a small and friendly text editor. - -Free Content -GNU Nano -GNU Nano Manual - -## PowerShell - -PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS. - -Free Content -PowerShell Documentation - -## Emacs - -An extensible, customizable, free/libre text editor. - -At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. - -Free Content -GNU Emacs -GNU Emacs Documentation +- [Vim](https://www.vim.org) +- [Vim help files](https://vimhelp.org/) +- [Vim Tips Wiki](https://vim.fandom.com/wiki/Vim_Tips_Wiki) +- [Vim Adventures](https://vim-adventures.com/) +- [GNU Nano](https://www.nano-editor.org/) +- [GNU Nano Manual](https://www.nano-editor.org/dist/latest/nano.html) +- [PowerShell Documentation](https://learn.microsoft.com/en-us/powershell/) +- [GNU Emacs](https://www.gnu.org/software/emacs/) +- [GNU Emacs Documentation](https://www.gnu.org/software/emacs/documentation.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-lsof.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-lsof.md index fbd10d63d..ee2b3c46d 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-lsof.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-lsof.md @@ -4,5 +4,5 @@ Lsof lists on its standard output file information about files opened by process See `man lsof` or `lsof --help` for further information. -lsof Cheat Sheet -lsof Documentation +- [lsof Cheat Sheet](https://neverendingsecurity.wordpress.com/2015/04/13/lsof-commands-cheatsheet/) +- [lsof Documentation](https://man7.org/linux/man-pages/man8/lsof.8.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-compiling-apps.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-compiling-apps.md index d852dd90a..a933a0808 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-compiling-apps.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-compiling-apps.md @@ -6,38 +6,16 @@ The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Proje "What is GCC used for?" GCC is a toolchain that compiles code, links it with any library dependencies, converts that code to assembly, and then prepares executable files.It is responsible for the conversion of the “high level” source code in the respective language and ensuring that it is semantically valid, performing well formed optimizations, and converting it to assembly code (which is then handed off to the assembler). -Free Content -Intro to GCC -GCC Linux -GCC Commands - -# make - -The GNU Make is a tool which enables and controls the creation of executables and other non-source files of a program from the program's source files. -Make builds the program from a file called the makefile, which lists each of the non-source files and how to compute it from other files. When you write a program, you should write a makefile for it, so that it is possible to use Make to build and install the program. - -"What is make used for?" Make enables the end user to build and install your package without knowing the details of how that is done -- because these details are recorded in the makefile that you supply. - -Free Content -Makefile Tutorial -Documentation for make -Using Make and writing Makefiles - -# sbt - -sbt is an open-source build tool for Scala and Java projects, similar to Apache's Maven and Ant. Its main features are: Native support for compiling Scala code and integrating with many Scala test frameworks. Continuous compilation, testing, and deployment. - -Free Content -Sbt Documentation -Sbt By Example - -# gradle - -Gradle is a build automation tool known for its flexibility to build software. A build automation tool is used to automate the creation of applications. The building process includes compiling, linking, and packaging the code. - -Free Content -Gradle Tutorial -Gradle for absolute beginners -Gradle Guides +- [Intro to GCC](https://courses.cs.washington.edu/courses/cse451/99wi/Section/gccintro.html) +- [GCC Linux](https://www.javatpoint.com/gcc-linux) +- [GCC Commands](https://www.geeksforgeeks.org/gcc-command-in-linux-with-examples/) +- [Makefile Tutorial](https://makefiletutorial.com) +- [Documentation for make](https://www.gnu.org/software/make/manual/) +- [Using Make and writing Makefiles](https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html) +- [Sbt Documentation](https://www.scala-sbt.org/1.x/docs/) +- [Sbt By Example](https://www.scala-sbt.org/1.x/docs/sbt-by-example.html) +- [Gradle Tutorial](https://www.tutorialspoint.com/gradle/index.htm) +- [Gradle for absolute beginners](https://tomgregory.com/gradle-tutorial-for-complete-beginners/) +- [Gradle Guides](https://gradle.org/guides/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-nmon.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-nmon.md index d1095a604..215713221 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-nmon.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-nmon.md @@ -2,6 +2,5 @@ Nmon is a fully interactive performance monitoring command-line utility tool for Linux. It is a benchmark tool that displays performance about the cpu, memory, network, disks, file system, nfs, top processes, resources, and power micro-partition. -Free Content -nmon Documentation -nmon Command Guide +- [nmon Documentation](https://www.ibm.com/docs/en/aix/7.2?topic=n-nmon-command) +- [nmon Command Guide](https://www.geeksforgeeks.org/linux-nmon/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/107-iostat.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/107-iostat.md index 5ece85f0d..c4d432037 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/107-iostat.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/107-iostat.md @@ -2,6 +2,5 @@ The iostat command in Linux is used for monitoring system input/output statistics for devices and partitions. It monitors system input/output by observing the time the devices are active in relation to their average transfer rates. The iostat produce reports may be used to change the system configuration to raised balance the input/output between the physical disks. -Free Content -iostat Documentation -iostat Command Guide +- [iostat Documentation](https://man7.org/linux/man-pages/man1/iostat.1.html) +- [iostat Command Guide](https://www.geeksforgeeks.org/iostat-command-in-linux-with-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/108-sar.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/108-sar.md index 4861addfc..2a7bd1de1 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/108-sar.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/108-sar.md @@ -2,9 +2,7 @@ Short for **S**ystem **A**ctivity **R**eport, it is a command line tool for Unix and Unix-like operating systems that shows a report of different information about the usage and activity of resources in the operating system. -Free Content - -SAR command in Linux to monitor system performance -SAR Man Page -SAR Man Page 2 -Sar tutorial for beginners +- [SAR command in Linux to monitor system performance](https://www.geeksforgeeks.org/sar-command-linux-monitor-system-performance/) +- [SAR Man Page](https://man7.org/linux/man-pages/man1/sar.1.html) +- [SAR Man Page 2](https://linux.die.net/man/1/sar) +- [Sar tutorial for beginners](https://linuxhint.com/sar_linux_tutorial/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/109-vmstat.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/109-vmstat.md index a0efbf7ca..65ddc5bc6 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/109-vmstat.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/109-vmstat.md @@ -2,9 +2,7 @@ Short for **V**irtual **m**emory **stat**istic reporter, it is a command line tool for Unix and Unix-like operating systems that reports various information about the operating system such as memory, paging, processes, I/O, CPU and disk usage. -Free Content - -vmstat command in Linux with Examples -Linux commands: exploring virtual memory with vmstat -VMstat Man Page -vmstat tutorial +- [vmstat command in Linux with Examples](https://www.geeksforgeeks.org/vmstat-command-in-linux-with-examples/) +- [Linux commands: exploring virtual memory with vmstat](https://www.redhat.com/sysadmin/linux-commands-vmstat) +- [VMstat Man Page](https://man7.org/linux/man-pages/man8/vmstat.8.html) +- [vmstat tutorial](https://phoenixnap.com/kb/vmstat-command) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md index d35cf2aca..e10046f72 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md @@ -4,6 +4,5 @@ It has the following syntax: `$ traceroute [OPTIONS] DESTINATION` e.g. `$ traceroute roadmap.sh` -Free Content -How to Run Traceroute in Linux -Traceroute command in Linux with examples +- [How to Run Traceroute in Linux](https://linuxhint.com/run_traceroute_linux/) +- [Traceroute command in Linux with examples](https://www.geeksforgeeks.org/traceroute-command-in-linux-with-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/111-mtr.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/111-mtr.md index 8e97e1f46..54a3f1de3 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/111-mtr.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/111-mtr.md @@ -4,7 +4,6 @@ As `mtr` starts, it investigates the network connection between the host `mtr` runs on and `HOSTNAME` by sending packets with purposely low TTLs. It continues sending packets with low TTL, noting the response time of the intervening routers. This allows `mtr` to print the internet route's response percentage and response times to HOSTNAME. A sudden packet loss or response time increase often indicates a bad (or simply overloaded) link. -Free Content -Javatpoint: Linux mtr Command -mtr Linux command -How to traceroute use mtr command in Linux \ No newline at end of file +- [Javatpoint: Linux mtr Command](https://www.javatpoint.com/linux-mtr) +- [mtr Linux command](https://www.tutorialspoint.com/unix_commands/mtr.htm) +- [How to traceroute use mtr command in Linux](https://www.devopsroles.com/how-to-traceroute-use-mtr-command-in-linux/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/112-ping.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/112-ping.md index 12764822c..ea50669ae 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/112-ping.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/112-ping.md @@ -4,6 +4,5 @@ It has the following syntax: `$ ping [OPTIONS] DESTINATION` e.g. `$ ping roadmap.sh` -Free Content -What is ping command? -ping command with examples \ No newline at end of file +- [What is ping command?](https://linuxize.com/post/linux-ping-command/) +- [ping command with examples](https://www.geeksforgeeks.org/ping-command-in-linux-with-examples/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/113-nmap.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/113-nmap.md index a107b552d..a993667d8 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/113-nmap.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/113-nmap.md @@ -2,6 +2,5 @@ NMAP stands for Network Mapper and is an open-source tool used to explore and audit the network's security, such as checking firewalls and scanning ports. -Free Content -NMAP Official Manual Book -What is Nmap and How to Use it \ No newline at end of file +- [NMAP Official Manual Book](https://nmap.org/book/man.html) +- [What is Nmap and How to Use it](https://www.freecodecamp.org/news/what-is-nmap-and-how-to-use-it-a-tutorial-for-the-greatest-scanning-tool-of-all-time/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/114-netstat.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/114-netstat.md index 9b5326402..d78925b0a 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/114-netstat.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/114-netstat.md @@ -2,9 +2,8 @@ Netstat is a command line utility to display all the network connections on a system. It displays all the tcp, udp and unix socket connections. Apart from connected sockets it also displays listening sockets that are waiting for incoming connections. -Free Content -netstat command in Linux with Examples -Netstat Tutorial -Netstat Commands - Network Administration Tutorial -Linux Command Line Tutorial For Beginners - netstat command +- [netstat command in Linux with Examples](https://www.tutorialspoint.com/unix_commands/netstat.htm) +- [Netstat Tutorial](http://www.c-jump.com/CIS24/Slides/Networking/html_utils/netstat.html) +- [Netstat Commands - Network Administration Tutorial](https://www.youtube.com/watch?v=bxFwpm4IobU) +- [Linux Command Line Tutorial For Beginners - netstat command](https://www.youtube.com/watch?v=zGNcvBaN5wE) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/116-tcpdump.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/116-tcpdump.md index e11a705d6..9c2b18403 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/116-tcpdump.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/116-tcpdump.md @@ -2,8 +2,7 @@ `tcpdump` is a command line tool used for analysing network traffic passing through your system. It can be used to capture and filter packets and display them in a human-readable format. The captured information can be analysed at a later date as well. -Free Content -tcpdump Documentation -Basic Introduction to Tcpdump -50 ways to isolate traffic with Tcpdump -Interpreting Tcpdump output and data \ No newline at end of file +- [tcpdump Documentation](https://www.tcpdump.org/manpages/tcpdump.1.html) +- [Basic Introduction to Tcpdump](https://opensource.com/article/18/10/introduction-tcpdump) +- [50 ways to isolate traffic with Tcpdump](https://danielmiessler.com/study/tcpdump/) +- [Interpreting Tcpdump output and data](https://www.youtube.com/watch?v=7bsQP9sKHrs) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/118-iptables.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/118-iptables.md index 4527c9f20..72f65e9ff 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/118-iptables.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/118-iptables.md @@ -2,5 +2,5 @@ IPtables is a command-line firewall utility that uses policy chains to allow or block traffic that will be enforced by the linux kernel’s netfilter framework. Iptables packet filtering mechanism is organized into three different kinds of structures: tables, chains and targets. -Iptables tutorial -Beginners to Advanced Guide Iptables +- [Iptables tutorial](https://www.hostinger.in/tutorials/iptables-tutorial) +- [Beginners to Advanced Guide Iptables](https://erravindrapawadia.medium.com/iptables-tutorial-beginners-to-advanced-guide-to-linux-firewall-839e10501759) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/119-dig.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/119-dig.md index 89ecb0fb2..159f4569c 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/119-dig.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/119-dig.md @@ -4,9 +4,8 @@ It has the following syntax: `$ dig [server] [name] [type]` e.g. `$ dig roadmap.sh` -Free Content -What is dig command? -More on dig -What is host command? -What is nslookup command? -What is DNS? \ No newline at end of file +- [What is dig command?](https://www.geeksforgeeks.org/dig-command-in-linux-with-examples/) +- [More on dig](https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/) +- [What is host command?](https://www.geeksforgeeks.org/host-command-in-linux-with-examples/) +- [What is nslookup command?](https://www.geeksforgeeks.org/nslookup-command-in-linux-with-examples/) +- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/120-awk.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/120-awk.md index 317748dd2..a2a5bd44a 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/120-awk.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/120-awk.md @@ -6,7 +6,6 @@ It has the below syntax: `awk options 'selection_criteria {action}' input-file > output-file` e.g. `$ awk '{print}' file.txt` -Free Content -What is AWK? How to use it? -How AWK works? -Linux Crash Course - awk +- [What is AWK? How to use it?](https://www.geeksforgeeks.org/awk-command-unixlinux-examples/) +- [How AWK works?](https://linuxize.com/post/awk-command/) +- [Linux Crash Course - awk](https://www.youtube.com/watch?v=oPEnvuj9QrI) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/121-sed.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/121-sed.md index a5bb77ab5..d94e5aac0 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/121-sed.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/121-sed.md @@ -6,8 +6,7 @@ It has the following syntax: `$ sed [options].. [script] [input-file]` e.g. `$ sed 's/search-regex/replacement-txt/g' file.txt` -Free Content -What is SED? with examples -Detailed Manual -Linux Crash Course - The sed Command +- [What is SED? with examples](https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/) +- [Detailed Manual](https://www.gnu.org/software/sed/manual/sed.html) +- [Linux Crash Course - The sed Command](https://www.youtube.com/watch?v=nXLnx8ncZyE&t=218s) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/122-grep.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/122-grep.md index 6b49d630c..803bd8259 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/122-grep.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/122-grep.md @@ -6,7 +6,6 @@ It has the following syntax: `$ grep [options] pattern [files]` e.g. `$ grep "search-regex" file-1.txt` -Free Content -What is Grep? with examples -Detailed Manual -Linux Crash Course - The grep Command +- [What is Grep? with examples](https://www.geeksforgeeks.org/grep-command-in-unixlinux/) +- [Detailed Manual](https://www.gnu.org/software/grep/manual/grep.html) +- [Linux Crash Course - The grep Command](https://www.youtube.com/watch?v=Tc_jntovCM0) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/123-sort.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/123-sort.md index 1379f7f6f..47e3080aa 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/123-sort.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/123-sort.md @@ -6,8 +6,7 @@ It has the following syntax `$ sort [options].. input-file` e.g. `$ sort file.txt` -Free Content -Sort command with examples -Options -Linux Tutorials|sort command GeeksforGeeks +- [Sort command with examples](https://www.geeksforgeeks.org/sort-command-linuxunix-examples/) +- [Options](https://en.wikipedia.org/wiki/Sort_(Unix)) +- [Linux Tutorials|sort command GeeksforGeeks](https://www.youtube.com/watch?v=fEx5rnbDKO4) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/124-cut.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/124-cut.md index e70132f1b..2834c7cb8 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/124-cut.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/124-cut.md @@ -4,5 +4,5 @@ The cut utility cuts out selected portions of each line (as specified by list) f See `man cut` for further information. -cut Documentation -cut Cheat Sheet +- [cut Documentation](https://man7.org/linux/man-pages/man1/cut.1.html) +- [cut Cheat Sheet](https://bencane.com/2012/10/22/cheat-sheet-cutting-text-with-cut/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/125-uniq.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/125-uniq.md index 4c9779f8c..d36218707 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/125-uniq.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/125-uniq.md @@ -4,5 +4,5 @@ The uniq utility reads the specified input_file comparing adjacent lines, and wr See `man uniq` for further information. -uniq Documentation -uniq Cheat Sheet +- [uniq Documentation](https://man7.org/linux/man-pages/man1/uniq.1.html) +- [uniq Cheat Sheet](https://www.geeksforgeeks.org/uniq-command-in-linux-with-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/126-cat.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/126-cat.md index 0fa3680ba..29a550cbc 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/126-cat.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/126-cat.md @@ -11,7 +11,6 @@ It has the following syntax: e.g. `$ cat file.txt` -Free Content -Cat Command with examples -Options -Linux Tutorials|cat command|GeeksforGeeks +- [Cat Command with examples](https://www.tecmint.com/13-basic-cat-command-examples-in-linux/) +- [Options](https://en.wikipedia.org/wiki/Cat_(Unix)) +- [Linux Tutorials|cat command|GeeksforGeeks](https://www.youtube.com/watch?v=exj5WMUJ11g) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/127-echo.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/127-echo.md index bb0eb5392..bf8dbfb9b 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/127-echo.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/127-echo.md @@ -4,6 +4,5 @@ It has the following syntax: `$ echo [options] [string]` e.g. `$ echo "Hello World!"` -Free Content -Echo command with Examples -Linux Crash Course - The echo Command +- [Echo command with Examples](https://www.tecmint.com/echo-command-in-linux/) +- [Linux Crash Course - The echo Command](https://www.youtube.com/watch?v=S_ySzMHxMjw) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/128-fmt.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/128-fmt.md index 6c980b34f..ab9c104c5 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/128-fmt.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/128-fmt.md @@ -4,5 +4,4 @@ It has the following syntax: `$ fmt [-width] [option] [file]` e.g. `$ fmt file.txt` -Free Content -Fmt command with Examples \ No newline at end of file +- [Fmt command with Examples](https://www.devopsroles.com/fmt-command-in-linux-with-example/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/129-tr.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/129-tr.md index 70501beb9..7e059dac9 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/129-tr.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/129-tr.md @@ -4,5 +4,5 @@ The tr utility copies the standard input to the standard output with substitutio See `man tr` for further information. -tr Documentation -tr Cheat Sheet +- [tr Documentation](https://linuxcommand.org/lc3_man_pages/tr1.html) +- [tr Cheat Sheet](https://linuxopsys.com/topics/tr-command-in-linux) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/130-nl.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/130-nl.md index a07ae078c..9fc81d808 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/130-nl.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/130-nl.md @@ -4,5 +4,5 @@ The nl utility reads lines from the named file or the standard input if the file See `man nl` for further information. -nl Documentation -nl Cheat Sheet +- [nl Documentation](https://man7.org/linux/man-pages/man1/nl.1.html) +- [nl Cheat Sheet](https://www.geeksforgeeks.org/nl-command-in-linux-with-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/131-wc.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/131-wc.md index cef2fa123..4c77831a0 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/131-wc.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/131-wc.md @@ -4,5 +4,5 @@ The wc utility displays the number of lines, words, and bytes contained in each See `man wc` for further information. -wc Documentation -wc Cheat Sheet +- [wc Documentation](https://linux.die.net/man/1/wc) +- [wc Cheat Sheet](https://onecompiler.com/cheatsheets/wc) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/134-strace.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/134-strace.md index 21c053223..abf489b07 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/134-strace.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/134-strace.md @@ -2,6 +2,5 @@ `strac` is a useful diagnsotic, debugging tool for unix based operating systems. It traces the system calls and signals a process uses during its lifetime. And usually returns the name of the each system calls , its arguments and what it returned. -Free Content -Strace Official Website -Strace — Linux manual page +- [Strace Official Website](https://strace.io/) +- [Strace — Linux manual page](https://man7.org/linux/man-pages/man1/strace.1.html) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/135-dtrace.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/135-dtrace.md index 75ded56f6..3824929de 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/135-dtrace.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/135-dtrace.md @@ -2,6 +2,5 @@ DTrace is a comprehensive dynamic tracing framework ported from Solaris. DTrace provides a powerful infrastructure that permits administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs. -Free Content -df manual -Wikipedia - DTrace +- [df manual](https://man7.org/linux/man-pages/man1/dtrace.1.html) +- [Wikipedia - DTrace](https://en.wikipedia.org/wiki/DTrace) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/137-uname.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/137-uname.md index 16fa1358f..d3e4dbb80 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/137-uname.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/137-uname.md @@ -2,6 +2,6 @@ Uname is a short form of Unix name and it helps to print the system information for both hardware and software in the current running system. -Uname Command Tutorial -Uname Tutorial For Beginners -Uname Command In Linux +- [Uname Command Tutorial](https://www.tutorialspoint.com/unix_commands/uname.htm) +- [Uname Tutorial For Beginners](https://www.howtoforge.com/linux-uname-command/) +- [Uname Command In Linux](https://linuxize.com/post/uname-command-in-linux/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/138-df.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/138-df.md index 107acc227..00184a2f4 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/138-df.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/138-df.md @@ -2,7 +2,6 @@ `df` is a standard Unix command used to display the amount of available disk space for file systems on which the invoking user has appropriate read access. df is typically implemented using the statfs or statvfs system calls. -Useful Links -df manual -Redhat - Check your disk space use with the Linux df command -df command with examples +- [df manual](https://man7.org/linux/man-pages/man1/df.1.html) +- [Redhat - Check your disk space use with the Linux df command](https://www.redhat.com/sysadmin/Linux-df-command) +- [df command with examples](https://www.geeksforgeeks.org/df-command-linux-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/139-history.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/139-history.md index 25c75a672..107049214 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/139-history.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/139-history.md @@ -4,5 +4,4 @@ It has the below syntax: `$ history` -Free Content -What is history command? How to recall previous commands? \ No newline at end of file +- [What is history command? How to recall previous commands?](https://www.geeksforgeeks.org/history-command-in-linux-with-examples/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/140-du.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/140-du.md index 8a4095783..931b4cef6 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/140-du.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/140-du.md @@ -2,7 +2,6 @@ The `du` utility, short for disk usage, displays the file system block usage for each file argument and for each directory in the file hierarchy rooted in each directory argument. If no file is specified, the block usage of the hierarchy rooted in the current directory is displayed. -Free Content -du manual -Redhat - du and the options you should be using -Du command with examples +- [du manual](https://man7.org/linux/man-pages/man1/du.1.html) +- [Redhat - du and the options you should be using](https://www.redhat.com/sysadmin/du-command-options) +- [Du command with examples](https://linuxhint.com/linux-du-command-examples/) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/141-scp.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/141-scp.md index a162cad18..61955c71c 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/141-scp.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/141-scp.md @@ -3,7 +3,6 @@ `SCP` is an acronym for Secure Copy Protocol.It is a command line utility that allows the user to securely copy files and directories between two locations usually between unix or linux systems.The protocol ensures the transmission of files is encrypted to prevent anyone with suspicious intentions from getting sensitive information.`SCP` uses encryption over an `SSH` (Secure Shell) connection, this ensures that the data being transferred is protected from suspicious attacks. -Free Content -SCP Linux Command -10 SCP command examples -SCP command explained +- [SCP Linux Command](https://www.freecodecamp.org/news/scp-linux-command-example-how-to-ssh-file-transfer-from-remote-to-local/) +- [10 SCP command examples](https://www.tecmint.com/scp-commands-examples/) +- [SCP command explained](https://phoenixnap.com/kb/linux-scp-command) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/142-ufw.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/142-ufw.md index a97bcbaf1..3401b2579 100644 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/142-ufw.md +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/142-ufw.md @@ -2,7 +2,6 @@ UFW, or *uncomplicated firewall*, is command-line based utility for managing firewall rules in Arch Linux, Debian and Ubuntu. It's aim is to make firewall configuration as simple as possible. It is a frontend for the `iptables` firewalling tool. -Free Content -ufw Documentation -Basic Introduction to UFW -UFW Essentials \ No newline at end of file +- [ufw Documentation](https://manpages.ubuntu.com/manpages/trusty/man8/ufw.8.html) +- [Basic Introduction to UFW](https://www.linux.com/training-tutorials/introduction-uncomplicated-firewall-ufw/) +- [UFW Essentials](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands) \ No newline at end of file diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/index.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/index.md new file mode 100644 index 000000000..704da619d --- /dev/null +++ b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/index.md @@ -0,0 +1,5 @@ +# Live in terminal + +A terminal is simply a text-based interface to the computer, it is use to interact with your computer system via CLI (command line interface) + +- [What is CLI?](https://en.wikipedia.org/wiki/Command-line_interface) diff --git a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/readme.md b/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/readme.md deleted file mode 100644 index 5cc06ee74..000000000 --- a/src/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Live in terminal - -A terminal is simply a text-based interface to the computer, it is use to interact with your computer system via CLI (command line interface) - -Free Content -What is CLI? diff --git a/src/roadmaps/devops/content/102-managing-servers/readme.md b/src/roadmaps/devops/content/102-managing-servers/index.md similarity index 100% rename from src/roadmaps/devops/content/102-managing-servers/readme.md rename to src/roadmaps/devops/content/102-managing-servers/index.md diff --git a/src/roadmaps/devops/content/103-networking-protocols/100-osi-model.md b/src/roadmaps/devops/content/103-networking-protocols/100-osi-model.md index 469f45f38..7649ce171 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/100-osi-model.md +++ b/src/roadmaps/devops/content/103-networking-protocols/100-osi-model.md @@ -2,14 +2,7 @@ Open Systems Interconnection (OSI) model is a **conceptual** model consists of 7 layers, that was proposed to standardize the communication between devices over the network. It was the first standard model for network communications, adopted by all major computer and telecommunication companies in the early 1980s. -Free Content -What is OSI Model? -OSI Model - -# TCP/IP Model - -TCP/IP model is a **practical** model consists of 4 layers. The modern Internet is based on this model. - - -What is TCP/IP Model? -OSI vs TCP/IP Model \ No newline at end of file +- [What is OSI Model?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/open-systems-interconnection-model-osi/) +- [OSI Model](https://www.youtube.com/watch?v=dV8mjZd1OtU) +- [What is TCP/IP Model?](https://www.geeksforgeeks.org/tcp-ip-model/) +- [OSI vs TCP/IP Model](https://www.youtube.com/watch?v=F5rni9fr1yE) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/101-dns.md b/src/roadmaps/devops/content/103-networking-protocols/101-dns.md index d280b0157..ffe5ed304 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/101-dns.md +++ b/src/roadmaps/devops/content/103-networking-protocols/101-dns.md @@ -2,8 +2,7 @@ DNS (**D**omain **N**ame **S**ystem) 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 -What is DNS? -HOw DNS works (comic) -DNS and How does it Work? -DNS Records +- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/) +- [HOw DNS works (comic)](https://howdns.works/) +- [DNS and How does it Work?](https://www.youtube.com/watch?v=Wj0od2ag5sk) +- [DNS Records](https://www.youtube.com/watch?v=7lxgpKh_fRY) diff --git a/src/roadmaps/devops/content/103-networking-protocols/102-http.md b/src/roadmaps/devops/content/103-networking-protocols/102-http.md index ac10871c6..a5784bddf 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/102-http.md +++ b/src/roadmaps/devops/content/103-networking-protocols/102-http.md @@ -2,9 +2,8 @@ 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 -What is HTTP? -An overview of HTTP -Journey to HTTP/2 -HTTP/3 From A To Z: Core Concepts -HTTP Crash Course & Exploration +- [What is HTTP?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) +- [An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) +- [Journey to HTTP/2](https://kamranahmed.info/blog/2016/08/13/http-in-depth) +- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/) +- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/100-white-grey-listing.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/100-white-grey-listing.md index d046c7346..2f19a050f 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/100-white-grey-listing.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/100-white-grey-listing.md @@ -4,6 +4,5 @@ White listing is a process of adding an email to an approved sender list, so ema `Greylisting` is a method of protecting e-mail users against spam. A mail transfer agent (MTA) using greylisting will "temporarily reject" any email from a sender it does not recognize. If the mail is legitimate, the originating server will try again after a delay, and the email will be accepted if sufficient time has elapsed. -Free Content -Basic Introduction to whitelisting -Detailed Introduction to greylisting +- [Basic Introduction to whitelisting](https://www.cblohm.com/blog/education-marketing-trends/what-is-email-whitelisting/) +- [Detailed Introduction to greylisting](https://en.wikipedia.org/wiki/Greylisting_(email)) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/101-smtp.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/101-smtp.md index 41a0d77d1..dfde18276 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/101-smtp.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/101-smtp.md @@ -4,5 +4,4 @@ Email is emerging as one of the most valuable services on the internet today. Mo SMTP is an application layer protocol. The client who wants to send the mail opens a TCP connection to the SMTP server and then sends the mail across the connection. The SMTP server is an always-on listening mode. As soon as it listens for a TCP connection from any client, the SMTP process initiates a connection through port 25. After successfully establishing a TCP connection the client process sends the mail instantly. -Free Content -What is Simple Mail Transfer Protocol (SMTP)? +- [What is Simple Mail Transfer Protocol (SMTP)?](https://www.geeksforgeeks.org/simple-mail-transfer-protocol-smtp/) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/102-imaps.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/102-imaps.md index 26a2e868a..25279114d 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/102-imaps.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/102-imaps.md @@ -3,6 +3,5 @@ IMAP (port 143) or IMAPS (port 993) allows you to access your email wherever you IMAP only downloads a message when you click on it, and attachments aren't automatically downloaded. This way you're able to check your messages a lot more quickly than POP. -Free Content -Wikipedia: Internet Message Access Protocol -What is IMAP and How To Use It | Email Tutorial \ No newline at end of file +- [Wikipedia: Internet Message Access Protocol](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) +- [What is IMAP and How To Use It | Email Tutorial](https://www.youtube.com/watch?v=cfXabGOA2s8) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/103-pop3s.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/103-pop3s.md index a55690fa1..a3ab56917 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/103-pop3s.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/103-pop3s.md @@ -5,5 +5,4 @@ Email servers hosted by Internet service providers also use POP3 to receive and Once the email client has downloaded the emails, they are usually deleted from the server, although some email clients allow users to specify that mails be copied or saved on the server for a period of time. -Free Content -What is POP3? \ No newline at end of file +- [What is POP3?](https://www.techtarget.com/whatis/definition/POP3-Post-Office-Protocol-3) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/104-dmarc.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/104-dmarc.md index 982732288..f8b8e7206 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/104-dmarc.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/104-dmarc.md @@ -2,5 +2,4 @@ DMARC stands for Domain-based Message Authentication, Reporting, and Conformance, is an authentication method on the email that is built to protect domain email from invalid email addresses or commonly known as email spoofing, email attacks, phishing, scams, and other threat activities. -Free Content -DMARC Official Website \ No newline at end of file +- [DMARC Official Website](https://dmarc.org/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/105-spf.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/105-spf.md index 9f02c9c7b..05dd62d20 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/105-spf.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/105-spf.md @@ -2,6 +2,5 @@ Sender Policy Framework (SPF) is used to authenticate the sender of an email. With an SPF record in place, Internet Service Providers can verify that a mail server is authorized to send email for a specific domain. An SPF record is a DNS TXT record containing a list of the IP addresses that are allowed to send email on behalf of your domain. -Free Content -What is a DNS SPF record? -SPF Overview +- [What is a DNS SPF record?](https://www.cloudflare.com/learning/dns/dns-records/dns-spf-record/) +- [SPF Overview](https://www.youtube.com/watch?v=WFPYrAr1boU) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/106-domain-keys.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/106-domain-keys.md index 2c5b94c16..467200e0c 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/106-domain-keys.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/106-domain-keys.md @@ -2,5 +2,4 @@ DomainKeys Identified Mail (DKIM) is an email authentication method designed to detect forged sender addresses in email (email spoofing), a technique often used in phishing and email spam. -Free Content -DomainKeys Identified Mail +- [DomainKeys Identified Mail](https://www.brainkart.com/article/DomainKeys-Identified-Mail_8493/) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-emails/readme.md b/src/roadmaps/devops/content/103-networking-protocols/103-emails/index.md similarity index 54% rename from src/roadmaps/devops/content/103-networking-protocols/103-emails/readme.md rename to src/roadmaps/devops/content/103-networking-protocols/103-emails/index.md index 42205cc96..f661f862d 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-emails/readme.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-emails/index.md @@ -2,5 +2,4 @@ Electronic mail, commonly shortened to “email,” is a communication method that uses electronic devices to deliver messages across computer networks. "Email" refers to both the delivery system and individual messages that are sent and received. -Reference Resource -What is an email? +- [What is an email?](https://www.cloudflare.com/learning/email-security/what-is-email/) diff --git a/src/roadmaps/devops/content/103-networking-protocols/103-https.md b/src/roadmaps/devops/content/103-networking-protocols/103-https.md index cdc4f5d65..e79ec57b2 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/103-https.md +++ b/src/roadmaps/devops/content/103-networking-protocols/103-https.md @@ -4,8 +4,7 @@ HTTPS (**H**ypertext **T**ransfer **P**rotocol **S**ecure) is the secure version `HTTPS = HTTP + SSL/TLS` -Free Content -What is HTTPS? -Why HTTPS Matters -Enabling HTTPS on Your Servers -How HTTPS works (comic) +- [What is HTTPS?](https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/) +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Enabling HTTPS on Your Servers](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https) +- [How HTTPS works (comic)](https://howhttps.works/) diff --git a/src/roadmaps/devops/content/103-networking-protocols/104-ftp.md b/src/roadmaps/devops/content/103-networking-protocols/104-ftp.md index 860e43bad..943ca07dc 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/104-ftp.md +++ b/src/roadmaps/devops/content/103-networking-protocols/104-ftp.md @@ -2,6 +2,5 @@ File Transfer Protocol(FTP) is `TCP/IP` based application layer communication protocol that helps transferring files between local and remote file systems over the network. To transfer a file, 2 TCP connections(control connection and data connection) are used in parallel. -Free Content -What is FTP? -FTP vs SFTP vs FTPS \ No newline at end of file +- [What is FTP?](https://www.geeksforgeeks.org/file-transfer-protocol-ftp-in-application-layer/) +- [FTP vs SFTP vs FTPS](https://www.fortinet.com/resources/cyberglossary/file-transfer-protocol-ftp-meaning) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/105-ssl-tls.md b/src/roadmaps/devops/content/103-networking-protocols/105-ssl-tls.md index 94c70e37a..4f38e1d2f 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/105-ssl-tls.md +++ b/src/roadmaps/devops/content/103-networking-protocols/105-ssl-tls.md @@ -2,8 +2,7 @@ Secure Sockets Layer (SSL) and Transport Layer Security (TLS) are cryptographic protocols used to provide security in internet communications. These protocols encrypt the data that is transmitted over the web, so anyone who tries to intercept packets will not be able to interpret the data. One difference that is important to know is that SSL is now deprecated due to security flaws, and most modern web browsers no longer support it. But TLS is still secure and widely supported, so preferably use TLS. -Free Content -Cloudflare - What is SSL? -Cloudflare - What is TLS? -Wikipedia - SSL/TLS -SSH vs SSL vs TLS \ No newline at end of file +- [Cloudflare - What is SSL?](https://www.cloudflare.com/learning/ssl/what-is-ssl/) +- [Cloudflare - What is TLS?](https://www.cloudflare.com/en-gb/learning/ssl/transport-layer-security-tls/) +- [Wikipedia - SSL/TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) +- [SSH vs SSL vs TLS](https://www.youtube.com/watch?v=k3rFFLmQCuY) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/106-ssh.md b/src/roadmaps/devops/content/103-networking-protocols/106-ssh.md index a1cd8bb22..58acf83fd 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/106-ssh.md +++ b/src/roadmaps/devops/content/103-networking-protocols/106-ssh.md @@ -4,7 +4,6 @@ The SSH (**S**ecure **Sh**ell) is a network communication protocol that enables `SFTP = FTP + SSH` -Free Content -SSH Intro -What is SSH? -SFTP using SSH \ No newline at end of file +- [SSH Intro](https://www.baeldung.com/cs/ssh-intro) +- [What is SSH?](https://www.ssh.com/academy/ssh/protocol) +- [SFTP using SSH](https://www.goanywhere.com/blog/how-sftp-works) \ No newline at end of file diff --git a/src/roadmaps/devops/content/103-networking-protocols/107-port-forwarding.md b/src/roadmaps/devops/content/103-networking-protocols/107-port-forwarding.md index c8d2f6afb..67070cb1c 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/107-port-forwarding.md +++ b/src/roadmaps/devops/content/103-networking-protocols/107-port-forwarding.md @@ -2,6 +2,5 @@ Port forwarding, sometimes called **port mapping**, allows computers or services in private networks to connect over the internet with other public or private computers or services. Since firewalls exist to keep unwanted visitors out, the visitors you want to get in are going to need a way to do so. Knowing the IP address isn’t enough, Requests need to be directed to the correct port as well. -Free Content -What is Port Forwarding? -Types of Port Forwarding +- [What is Port Forwarding?](https://learn.g2.com/port-forwarding) +- [Types of Port Forwarding](https://cybernews.com/what-is-vpn/port-forwarding/) diff --git a/src/roadmaps/devops/content/103-networking-protocols/readme.md b/src/roadmaps/devops/content/103-networking-protocols/index.md similarity index 66% rename from src/roadmaps/devops/content/103-networking-protocols/readme.md rename to src/roadmaps/devops/content/103-networking-protocols/index.md index e56d62841..3706f0b86 100644 --- a/src/roadmaps/devops/content/103-networking-protocols/readme.md +++ b/src/roadmaps/devops/content/103-networking-protocols/index.md @@ -2,5 +2,4 @@ A network protocol is an established set of rules that determine how data is transmitted between different devices in the same network. Essentially, it allows connected devices to communicate with each other, regardless of any differences in their internal processes, structure or design. Network protocols are the reason you can easily communicate with people all over the world, and thus play a critical role in modern digital communications. -Free Content -What Is a Network Protocol, and How Does It Work? +- [What Is a Network Protocol, and How Does It Work?](https://www.comptia.org/content/guides/what-is-a-network-protocol) diff --git a/src/roadmaps/devops/content/104-setting-up-x/100-reverse-proxy.md b/src/roadmaps/devops/content/104-setting-up-x/100-reverse-proxy.md index e49d360c9..e60218f8f 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/100-reverse-proxy.md +++ b/src/roadmaps/devops/content/104-setting-up-x/100-reverse-proxy.md @@ -8,6 +8,5 @@ A Reverse Proxy server is a type of proxy server that typically sits behind the * Web acceleration * Security and anonymity -Free Content -What is Reverse Proxy? -NGINX documentation \ No newline at end of file +- [What is Reverse Proxy?](https://www.cloudflare.com/en-gb/learning/cdn/glossary/reverse-proxy/) +- [NGINX documentation](https://www.nginx.com/resources/glossary/reverse-proxy-server/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/104-setting-up-x/101-caching-server.md b/src/roadmaps/devops/content/104-setting-up-x/101-caching-server.md index 4c1d375c9..540e8a1a3 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/101-caching-server.md +++ b/src/roadmaps/devops/content/104-setting-up-x/101-caching-server.md @@ -2,7 +2,6 @@ A cache server is a **dedicated network server** or service acting as a server that saves Web pages or other Internet content locally. By placing previously requested information in temporary storage, or cache, a cache server both speeds up access to data and reduces demand on an enterprise's bandwidth. -Free Content -What is Caching? -What is Cache Server? -Site Cache vs Browser Cache vs Server Cache \ No newline at end of file +- [What is Caching?](https://www.cloudflare.com/en-gb/learning/cdn/what-is-caching/) +- [What is Cache Server?](https://networkencyclopedia.com/cache-server/) +- [Site Cache vs Browser Cache vs Server Cache](https://wp-rocket.me/blog/different-types-of-caching/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/104-setting-up-x/102-forward-proxy.md b/src/roadmaps/devops/content/104-setting-up-x/102-forward-proxy.md index bfc271553..585cb0677 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/102-forward-proxy.md +++ b/src/roadmaps/devops/content/104-setting-up-x/102-forward-proxy.md @@ -8,6 +8,5 @@ Forward Proxy, often called proxy server is a server that sits in front of a gro * To protect client identity online * To provide restricted internet to organizations -Free Content -What is Forward Proxy? -Forward vs Reverse Proxy \ No newline at end of file +- [What is Forward Proxy?](https://www.fortinet.com/resources/cyberglossary/proxy-server) +- [Forward vs Reverse Proxy](https://oxylabs.io/blog/reverse-proxy-vs-forward-proxy) \ No newline at end of file diff --git a/src/roadmaps/devops/content/104-setting-up-x/103-load-balancer.md b/src/roadmaps/devops/content/104-setting-up-x/103-load-balancer.md index b6539d6ac..5d98f1087 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/103-load-balancer.md +++ b/src/roadmaps/devops/content/104-setting-up-x/103-load-balancer.md @@ -2,6 +2,5 @@ Load Balancer acts as the **traffic cop** sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked. If a one of the servers goes down, the load balancer redirects traffic to the remaining online servers. -Free Content -What is Load Balancing? -Load Balancing concepts and algorithms \ No newline at end of file +- [What is Load Balancing?](https://www.nginx.com/resources/glossary/load-balancing/) +- [Load Balancing concepts and algorithms](https://www.cloudflare.com/en-gb/learning/performance/what-is-load-balancing/) \ No newline at end of file diff --git a/src/roadmaps/devops/content/104-setting-up-x/104-firewall.md b/src/roadmaps/devops/content/104-setting-up-x/104-firewall.md index 19396251c..d152b8fce 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/104-firewall.md +++ b/src/roadmaps/devops/content/104-setting-up-x/104-firewall.md @@ -2,10 +2,9 @@ Firewall is a **network security device** that monitors and filters incoming and outgoing network traffic based on an organization’s previously established security policies. It is a barrier that sits between a private internal network and the public Internet. A firewall’s main purpose is to allow non-threatening traffic in and to keep dangerous traffic out. -Free Content -What is Firewall? -Types of Firewall - Introduction of Firewall in Computer Network - What is Firewall in Computer Network? -Why do we need Firewalls? - Firewalls and Network Security - SimpliLearn +- [What is Firewall?](https://www.checkpoint.com/cyber-hub/network-security/what-is-firewall/) +- [Types of Firewall](https://www.cisco.com/c/en_in/products/security/firewalls/what-is-a-firewall.html) +- [ Introduction of Firewall in Computer Network](https://www.geeksforgeeks.org/introduction-of-firewall-in-computer-network/) +- [ What is Firewall in Computer Network?](https://www.geeksforgeeks.org/introduction-of-firewall-in-computer-network/) +- [Why do we need Firewalls?](https://www.tutorialspoint.com/what-is-a-firewall-and-why-do-you-need-one) +- [ Firewalls and Network Security - SimpliLearn](https://www.youtube.com/watch?v=9GZlVOafYTg) diff --git a/src/roadmaps/devops/content/104-setting-up-x/105-nginx.md b/src/roadmaps/devops/content/104-setting-up-x/105-nginx.md index a99b98d97..f3ef2387a 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/105-nginx.md +++ b/src/roadmaps/devops/content/104-setting-up-x/105-nginx.md @@ -2,6 +2,5 @@ NGINX is a powerful web server and uses a non-threaded, event-driven architecture that enables it to outperform Apache if configured correctly. It can also do other important things, such as load balancing, HTTP caching, or be used as a reverse proxy. -Free Content -Official Website -NGINX Explained in 100 Seconds +- [Official Website](https://nginx.org/) +- [NGINX Explained in 100 Seconds](https://www.youtube.com/watch?v=JKxlsvZXG7c) diff --git a/src/roadmaps/devops/content/104-setting-up-x/106-apache.md b/src/roadmaps/devops/content/104-setting-up-x/106-apache.md index eb7663c69..803a8735a 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/106-apache.md +++ b/src/roadmaps/devops/content/104-setting-up-x/106-apache.md @@ -2,6 +2,5 @@ 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 -Apache Server Website -What is Apache Web Server? +- [Apache Server Website](https://httpd.apache.org/) +- [What is Apache Web Server?](https://www.youtube.com/watch?v=kaaenHXO4t4) diff --git a/src/roadmaps/devops/content/104-setting-up-x/107-tomcat.md b/src/roadmaps/devops/content/104-setting-up-x/107-tomcat.md index 04cf6a7b8..efcdf482e 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/107-tomcat.md +++ b/src/roadmaps/devops/content/104-setting-up-x/107-tomcat.md @@ -2,7 +2,6 @@ Tomcat is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta EE platform. -Free Content -Tomcat Website -Official Documentation(Tomcat 10.0) -Apache Tomcat +- [Tomcat Website](https://tomcat.apache.org/) +- [Official Documentation(Tomcat 10.0)](https://tomcat.apache.org/tomcat-10.0-doc/index.html) +- [Apache Tomcat](https://www.youtube.com/c/ApacheTomcatOfficial) diff --git a/src/roadmaps/devops/content/104-setting-up-x/108-iis.md b/src/roadmaps/devops/content/104-setting-up-x/108-iis.md index aaf3f8987..7a2699bd8 100644 --- a/src/roadmaps/devops/content/104-setting-up-x/108-iis.md +++ b/src/roadmaps/devops/content/104-setting-up-x/108-iis.md @@ -2,6 +2,5 @@ Internet Information Services (IIS) for Windows® Server is a flexible, secure and manageable Web server for hosting anything on the Web. -Free Content -Official Website -Learn Windows Web Server IIS +- [Official Website](https://www.iis.net/) +- [Learn Windows Web Server IIS](https://www.youtube.com/watch?v=1VdxPWwtISA) diff --git a/src/roadmaps/devops/content/104-setting-up-x/readme.md b/src/roadmaps/devops/content/104-setting-up-x/index.md similarity index 100% rename from src/roadmaps/devops/content/104-setting-up-x/readme.md rename to src/roadmaps/devops/content/104-setting-up-x/index.md diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-docker.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-docker.md index 2352df0dc..c1d0ee7c0 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-docker.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-docker.md @@ -2,8 +2,7 @@ Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run. -Free Content -Docker Website -Docker Documentation -Docker Tutorial for Beginners -Docker Full Course for Beginners +- [Docker Website](https://www.docker.com/) +- [Docker Documentation](https://docs.docker.com/) +- [Docker Tutorial for Beginners](https://www.youtube.com/watch?v=pTFZFxd4hOI) +- [Docker Full Course for Beginners](https://www.youtube.com/watch?v=3c-iBn73dDE) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md index 67f6d3445..eb146a743 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/100-consul.md @@ -2,5 +2,4 @@ Consul is a service mesh solution providing a full featured control plane with service discovery, configuration, and segmentation functionality. Each of these features can be used individually as needed, or they can be used together to build a full service mesh. Consul requires a data plane and supports both a proxy and native integration model. Consul ships with a simple built-in proxy so that everything works out of the box, but also supports 3rd party proxy integrations such as Envoy. -Free Content -What is Consul? +- [What is Consul?](https://www.consul.io/docs/intro) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/101-istio.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/101-istio.md index 0b814cc5c..6e2ee8602 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/101-istio.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/101-istio.md @@ -2,5 +2,4 @@ Istio is an open source service mesh platform that provides a way to control how microservices share data with one another. It includes APIs that let Istio integrate into any logging platform, telemetry, or policy system. Istio is designed to run in a variety of environments: on-premise, cloud-hosted, in Kubernetes containers, in services running on virtual machines, and more. -Free Content -What is Istio? +- [What is Istio?](https://www.redhat.com/en/topics/microservices/what-is-istio) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/102-envoy.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/102-envoy.md index 072a12a6d..ebf5fee73 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/102-envoy.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/102-envoy.md @@ -2,7 +2,6 @@ Originally created at Lyft, Envoy is a high-performance data plane designed for service mesh architectures. Lyft open sourced it and donated it to the CNCF, where it is now one of the CNCF’s graduated open source projects. Envoy is a self contained process that is designed to run alongside every application server. All of the Envoys form a transparent communication mesh in which each application sends and receives messages to and from localhost and is unaware of the network topology. -Free Content -Envoy Website -Envoy Documentation -What is Envoy? +- [Envoy Website](https://www.envoyproxy.io/) +- [Envoy Documentation](https://www.envoyproxy.io/docs/envoy/latest/start/start) +- [What is Envoy?](https://www.envoyproxy.io/docs/envoy/latest/intro/what_is_envoy) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/103-linkerd.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/103-linkerd.md index e8d799df7..ab87c1d18 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/103-linkerd.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/103-linkerd.md @@ -2,7 +2,6 @@ Linkerd is an open source service mesh designed to be deployed into a variety of container schedulers and frameworks such as Kubernetes. It became the original “service mesh” when its creator Buoyant first coined the term in 2016. Like Twitter’s Finagle, on which it was based, Linkerd was first written in Scala and designed to be deployed on a per-host basis. Linkerd is one of the first products to be associated with the term service mesh and supports platforms such as Docker and Kubernetes. -Free Content -Linkerd Website -Linkerd Documentation -What is Linkerd? +- [Linkerd Website](https://linkerd.io/) +- [Linkerd Documentation](https://linkerd.io/2.11/overview/) +- [What is Linkerd?](https://www.techtarget.com/searchitoperations/definition/Linkerd) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/index.md similarity index 55% rename from src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/readme.md rename to src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/index.md index 32b7e70b9..85db1a537 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/readme.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/100-service-mesh/index.md @@ -2,6 +2,5 @@ A service mesh, like the open source project Istio, is a way to control how different parts of an application share data with one another. Unlike other systems for managing this communication, a service mesh is a dedicated infrastructure layer built right into an app. This visible infrastructure layer can document how well (or not) different parts of an app interact, so it becomes easier to optimize communication and avoid downtime as an app grows. -Free Content -What's a service mesh? -The latest news about service mesh (TNS) +- [Whats a service mesh?](https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh) +- [The latest news about service mesh (TNS)](https://thenewstack.io/category/service-mesh/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/101-containers.md b/src/roadmaps/devops/content/105-infrastructure-as-code/101-containers.md index e544f06ff..570d59678 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/101-containers.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/101-containers.md @@ -4,8 +4,7 @@ Containers are a construct in which [cgroups](https://en.wikipedia.org/wiki/Cgro These images are designed for portability, allowing for full local testing of a static image, and easy deployment to a container management platform. -Free Content -What are Containers? -What is a Container? -What are Containers? -Articles about Containers - The New Stack +- [What are Containers?](https://cloud.google.com/learn/what-are-containers) +- [What is a Container?](https://www.docker.com/resources/what-container/) +- [What are Containers?](https://www.youtube.com/playlist?list=PLawsLZMfND4nz-WDBZIj8-nbzGFD4S9oz) +- [Articles about Containers - The New Stack](https://thenewstack.io/category/containers/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/101-lxc.md b/src/roadmaps/devops/content/105-infrastructure-as-code/101-lxc.md index 94de13d46..e5d4f431a 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/101-lxc.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/101-lxc.md @@ -2,7 +2,6 @@ LXC is a well-known Linux container runtime that consists of tools, templates, and library and language bindings. It's pretty low level, very flexible and covers just about every containment feature supported by the upstream kernel. -Free Content -LXC Website -LXC Documentation -Getting started with LXC containers +- [LXC Website](https://linuxcontainers.org/) +- [LXC Documentation](https://linuxcontainers.org/lxc/documentation/) +- [Getting started with LXC containers](https://www.youtube.com/watch?v=CWmkSj_B-wo) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/100-ansible.md b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/100-ansible.md index 451a4e374..593f926a8 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/100-ansible.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/100-ansible.md @@ -3,7 +3,7 @@ Ansible is an open-source configuration management, application deployment and provisioning tool that uses its own declarative language in YAML. Ansible is agentless, meaning you only need remote connections via SSH or Windows Remote Management via Powershell in order to function -Ansible Website -Official Documentation -Ansible Getting Started Guide -Ansible Full Course for Beginners +- [Ansible Website](https://www.ansible.com/) +- [Official Documentation](https://docs.ansible.com/) +- [Ansible Getting Started Guide](https://www.ansible.com/resources/get-started) +- [Ansible Full Course for Beginners](https://www.youtube.com/watch?v=9Ua2b06oAr4) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/101-chef.md b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/101-chef.md index 3b3365f9f..7c274a1c5 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/101-chef.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/101-chef.md @@ -6,5 +6,5 @@ Chef requires that a client is installed on a server being managed. This client A key tenet of Chef recipe design is the concept of [idempotence](https://en.wikipedia.org/wiki/Idempotence). All Chef recipes should be runnable multiple times and produce the same result - this is especially necessary in cases where the client/server model listed above is in use. This pattern of configuration management is highly influential for future declarative tools like Terraform and Cloud Formation. -Chef Website -Chef Tutorial +- [Chef Website](https://www.chef.io/products/chef-infra) +- [Chef Tutorial](https://www.tutorialspoint.com/chef/index.htm) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/102-salt.md b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/102-salt.md index 2ca697e3c..61e0c1e0e 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/102-salt.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/102-salt.md @@ -2,7 +2,7 @@ Salt is an open-source event-driven IT automation, remote task execution, and configuration management software service. Built on python, Salt uses simple and human-readable YAML combined with event-driven automation to deploy and configure complex IT systems. -Salt Project Website -Official Documentation -Introduction to Salt -Salt Installation +- [Salt Project Website](https://docs.saltproject.io/en/latest/topics/about_salt_project.html) +- [Official Documentation](https://docs.saltproject.io/en/latest/) +- [Introduction to Salt](https://docs.saltproject.io/en/latest/topics/index.html) +- [Salt Installation](https://docs.saltproject.io/en/latest/topics/installation/index.html#installation) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/103-puppet.md b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/103-puppet.md index 00201f36e..2ff9b4e5e 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/103-puppet.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/103-puppet.md @@ -2,6 +2,6 @@ Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification. -Puppet Website -Official Documentation -Introduction to Puppet +- [Puppet Website](https://puppet.com/) +- [Official Documentation](https://puppet.com/docs) +- [Introduction to Puppet](https://puppet.com/docs/puppet/6/puppet_overview.html) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/index.md similarity index 79% rename from src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/readme.md rename to src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/index.md index 0da4b9e50..59c29cf68 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/readme.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/102-configuration-management/index.md @@ -4,5 +4,4 @@ Configuration management is a systems engineering process for establishing consi Software configuration management is a systems engineering process that tracks and monitors changes to a software systems configuration metadata. In software development, configuration management is commonly used alongside version control and CI/CD infrastructure. This post focuses on its modern application and use in agile CI/CD software environments. -Free Content -What is configuration management? +- [What is configuration management?](https://www.atlassian.com/microservices/microservices-architecture/configuration-management) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/100-terraform.md b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/100-terraform.md index e93fb18d0..4849f87f9 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/100-terraform.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/100-terraform.md @@ -2,12 +2,12 @@ Terraform is an extremely popular open source Infrastructure as Code (IaC) tool that can be used with many different cloud and service provider APIs. Terraform focuses on an immutable approach to infrastructure, with a terraform state file center to tracking the status of your real world infrastructure. -Terraform Website -Terraform Documentation -Terraform Tutorials -Intro to Terraform Video -Terraform CDK Website -What is the CDKTF? -CDKTF Getting Started Guide -CDKTF Examples -How to Scale Your Terraform Infrastructure +- [Terraform Website](https://www.terraform.io/) +- [Terraform Documentation](https://www.terraform.io/docs) +- [Terraform Tutorials](https://learn.hashicorp.com/terraform) +- [Intro to Terraform Video](https://www.youtube.com/watch?v=h970ZBgKINg&ab_channel=HashiCorp) +- [Terraform CDK Website](https://www.terraform.io/cdktf) +- [What is the CDKTF?](https://www.terraform.io/cdktf/concepts/cdktf-architecture) +- [CDKTF Getting Started Guide](https://learn.hashicorp.com/tutorials/terraform/cdktf-install?in=terraform/cdktf) +- [CDKTF Examples](https://www.terraform.io/cdktf/examples) +- [How to Scale Your Terraform Infrastructure](https://thenewstack.io/how-to-scale-your-terraform-infrastructure/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/101-aws-cdk.md b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/101-aws-cdk.md index 38c9ad457..7bf24879e 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/101-aws-cdk.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/101-aws-cdk.md @@ -2,8 +2,8 @@ The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework used to provision cloud infrastructure resources in a safe, repeatable manner through AWS CloudFormation. AWS CDK offers the flexibility to write infrastructure as code in popular languages like JavaScript, TypeScript, Python, Java, C#, and Go. -AWS CDK Website -Official Documentation -What is the AWS CDK? -AWS SDK Getting Started Guide -AWS CDK Examples +- [AWS CDK Website](https://aws.amazon.com/cdk/) +- [Official Documentation](https://docs.aws.amazon.com/cdk/index.html) +- [What is the AWS CDK?](https://docs.aws.amazon.com/cdk/v2/guide/home.html) +- [AWS SDK Getting Started Guide](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) +- [AWS CDK Examples](https://github.com/aws-samples/aws-cdk-examples) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/102-cloudformation.md b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/102-cloudformation.md index c7f79225a..9f7d47649 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/102-cloudformation.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/102-cloudformation.md @@ -2,7 +2,7 @@ CloudFormation is the AWS service that helps to define collections of AWS resources. CloudFormation lets you model, provision, and manage AWS and third-party resources by treating infrastructure as code. -AWS CloudFormation Website -Official Documentation -AWS CloudFormation Getting Started Guide -CloudFormation Sample Templates +- [AWS CloudFormation Website](https://aws.amazon.com/cloudformation/) +- [Official Documentation](https://docs.aws.amazon.com/cloudformation/index.html) +- [AWS CloudFormation Getting Started Guide](https://aws.amazon.com/cloudformation/getting-started/) +- [CloudFormation Sample Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-sample-templates.html) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/103-pulumi.md b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/103-pulumi.md index a1c59576a..ba0b7dba9 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/103-pulumi.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/103-pulumi.md @@ -2,6 +2,6 @@ Pulumi is an open source Infrastructure as Code tool that can be written in TypeScript, JavaScript, Python, Go, .NET, Java, and YAML to model cloud infrastructure. -Pulumi Website -Official Documentation -Pulumi Getting Started Guide +- [Pulumi Website](https://www.pulumi.com/) +- [Official Documentation](https://www.pulumi.com/docs/) +- [Pulumi Getting Started Guide](https://www.pulumi.com/docs/get-started/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/index.md similarity index 100% rename from src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/readme.md rename to src/roadmaps/devops/content/105-infrastructure-as-code/103-infrastructure-provisioning/index.md diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-docker-swarm.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-docker-swarm.md index 4f5d1c63a..3f8fde11e 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-docker-swarm.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-docker-swarm.md @@ -2,10 +2,8 @@ A Docker Swarm is a group of either physical or virtual machines that are running the Docker application and that have been configured to join together in a cluster. Once a group of machines have been clustered together, you can still run the Docker commands that you're used to, but they will now be carried out by the machines in your cluster. The activities of the cluster are controlled by a swarm manager, and machines that have joined the cluster are referred to as nodes. -Free Content -Official Website -Docker Swarm Documentation -Docker Swarm Tutorial for Beginners - -Tutorial: Manage Docker Swarm with Portainer -Tutorial: Create a Docker Swarm with Persistent Storage Using GlusterFS +- [Official Website](https://www.docker.com/) +- [Docker Swarm Documentation](https://docs.docker.com/engine/swarm/) +- [Docker Swarm Tutorial for Beginners](https://www.youtube.com/watch?v=Tm0Q5zr3FL4) +- [Tutorial: Manage Docker Swarm with Portainer](https://thenewstack.io/tutorial-manage-docker-swarm-with-portainer/) +- [Tutorial: Create a Docker Swarm with Persistent Storage Using GlusterFS](https://thenewstack.io/tutorial-create-a-docker-swarm-with-persistent-storage-using-glusterfs/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md index dc4c37e36..2295f4136 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md @@ -6,5 +6,4 @@ In an Argo CD workflow, changes to the application are made by committing code o Argo CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications. -Free Content -Argo CD - Argo Project +- [Argo CD - Argo Project](https://argoproj.github.io/docs/argo-cd/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/101-flux-cd.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/101-flux-cd.md index 6f8fdcc51..7b37e04b6 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/101-flux-cd.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/101-flux-cd.md @@ -6,5 +6,4 @@ In a Flux CD workflow, changes to the application are made by committing code or Flux CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications. -Free Content -Flux CD Docs +- [Flux CD Docs](https://docs.fluxcd.io/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/index.md similarity index 86% rename from src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/readme.md rename to src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/index.md index b4027ff03..73ef2dc9d 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/readme.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/index.md @@ -6,5 +6,4 @@ In a GitOps workflow, changes to the system are made by committing code or confi GitOps is designed to be a more efficient and agile way of managing cloud-native environments, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Kubernetes and Helm to automate the deployment and management of cloud-native applications. -Free Content -Guide to GitOps +- [Guide to GitOps](https://www.weave.works/technologies/gitops/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-kubernetes.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-kubernetes.md index e08de302d..d9173bd7a 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-kubernetes.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-kubernetes.md @@ -4,9 +4,8 @@ Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) contain The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. -Free Content -Kubernetes Website -Kubernetes Documentation -Kubernetes Crash Course for Absolute Beginners -Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care -Kubernetes: An Overview +- [Kubernetes Website](https://kubernetes.io/) +- [Kubernetes Documentation](https://kubernetes.io/docs/home/) +- [Kubernetes Crash Course for Absolute Beginners](https://www.youtube.com/watch?v=s_o8dwzRlu4) +- [Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care](https://thenewstack.io/primer-how-kubernetes-came-to-be-what-it-is-and-why-you-should-care/) +- [Kubernetes: An Overview](https://thenewstack.io/kubernetes-an-overview/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/104-nomad.md b/src/roadmaps/devops/content/105-infrastructure-as-code/104-nomad.md index 92d0a5a16..a46fb457b 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/104-nomad.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/104-nomad.md @@ -2,7 +2,6 @@ [Nomad](https://github.com/hashicorp/nomad) is a simple and flexible scheduler and orchestrator to deploy and manage containers and non-containerized applications across on-prem and clouds at scale. Nomad runs as a single binary with a small resource footprint and supports a wide range of workloads beyond containers, including Windows, Java, VM, Docker, and more. -Free Content -Nomad Website -Nomad Documentation -Nomad Tutorials +- [Nomad Website](https://www.nomadproject.io/) +- [Nomad Documentation](https://www.nomadproject.io/docs) +- [Nomad Tutorials](https://learn.hashicorp.com/nomad) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/100-vault.md b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/100-vault.md index c0b19ce33..628ae2ef7 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/100-vault.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/100-vault.md @@ -13,8 +13,7 @@ Vault is designed to be highly scalable and flexible, with a wide range of featu Vault is commonly used in DevOps environments to securely store and manage secrets, and it is often used in conjunction with other tools, such as Kubernetes and Helm, to automate the deployment and management of cloud-native applications. -Free Content -Vault - Official Website +- [Vault - Official Website](https://www.vaultproject.io/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/101-sops.md b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/101-sops.md index ccc29b9a7..549380c70 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/101-sops.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/101-sops.md @@ -11,5 +11,4 @@ SOPS is designed to be easy to use and highly secure, with a range of features f SOPS is commonly used in DevOps environments to securely store and manage secrets, and it is often used in conjunction with other tools, such as Kubernetes and Helm, to automate the deployment and management of cloud-native applications. -Free Content -Mozilla SOPS - Official Website +- [Mozilla SOPS - Official Website](https://github.com/mozilla/sops) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/102-sealed-secrets.md b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/102-sealed-secrets.md index aab82a9fa..ec020d3a5 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/102-sealed-secrets.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/102-sealed-secrets.md @@ -13,5 +13,4 @@ Sealed Secrets is designed to be highly secure and easy to use, with a range of Sealed Secrets is commonly used in Kubernetes environments to securely store and manage secrets, and it is often used in conjunction with other tools, such as Helm, to automate the deployment and management of cloud-native applications. -Free Content -Sealed Secrets - Bitnami +- [Sealed Secrets - Bitnami](https://github.com/bitnami-labs/sealed-secrets) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/103-cloud-specific-tools.md b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/103-cloud-specific-tools.md index 71bfa3ec4..44d4c9f4c 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/103-cloud-specific-tools.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/103-cloud-specific-tools.md @@ -8,7 +8,6 @@ There are several cloud-specific tools for securely storing and managing secrets These cloud-specific tools are designed to be used in conjunction with cloud-based applications and infrastructure and are typically integrated with other cloud services, such as container orchestration platforms and continuous delivery pipelines. -Free Content -AWS Secrets Manager - Amazon Web Services -Google Cloud Secret Manager - Google Cloud -Azure Key Vault - Microsoft Azure +- [AWS Secrets Manager - Amazon Web Services](https://aws.amazon.com/secrets-manager/) +- [Google Cloud Secret Manager - Google Cloud](https://cloud.google.com/secret-manager) +- [Azure Key Vault - Microsoft Azure](https://azure.microsoft.com/en-us/services/key-vault/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/index.md similarity index 67% rename from src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/readme.md rename to src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/index.md index 68adf0cbf..b6a7661f0 100644 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/readme.md +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/105-secret-management/index.md @@ -10,8 +10,8 @@ There are several ways to manage secrets in a cloud environment: Effective secret management is essential for maintaining the security and integrity of a DevOps environment. It is important to regularly review and update secret management practices to ensure that secrets are being stored and managed securely. -Secrets management guide — approaches, open source tools, commercial products, challenges and questions -Secret Management Architectures: Finding the balance between security and complexity +- [Secrets management guide — approaches, open source tools, commercial products, challenges and questions](https://medium.com/@burshteyn/secrets-management-guide-approaches-open-source-tools-commercial-products-challenges-db560fd0584d) +- [Secret Management Architectures: Finding the balance between security and complexity](https://medium.com/slalom-technology/secret-management-architectures-finding-the-balance-between-security-and-complexity-9e56f2078e54) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/index.md b/src/roadmaps/devops/content/105-infrastructure-as-code/index.md new file mode 100644 index 000000000..bcde2e382 --- /dev/null +++ b/src/roadmaps/devops/content/105-infrastructure-as-code/index.md @@ -0,0 +1,10 @@ +# Infrastructure as Code + +Sometimes referred to as IaC, this section refers to the techniques and tools used to define infrastructure, typically in a markup language like YAML or JSON. Infrastructure as code allows DevOps Engineers to use the same workflows used by software developers to version, roll back, and otherwise manage changes. + +The term Infrastructure as Code encompasses everything from bootstrapping to configuration to orchestration, and it is considered a best practice in the industry to manage all infrastructure as code. This technique precipitated the explosion in system complexity seen in modern DevOps organizations. + +- [What is Infrastructure as Code?](https://www.youtube.com/watch?v=zWw2wuiKd5o) +- [What is Infrastructure as Code? Difference of Infrastructure as Code Tools](https://www.youtube.com/watch?v=POPP2WTJ8es) +- [GUIs, CLI, APIs: Learn Basic Terms of Infrastructure-as-Code](https://thenewstack.io/guis-cli-apis-learn-basic-terms-of-infrastructure-as-code/) +- [Understanding Infrastructure as Code (IaC) in less than 10 minutes](https://www.novatec-gmbh.de/en/blog/understanding-infrastructure-as-code-iac-in-less-than-10-minutes/) diff --git a/src/roadmaps/devops/content/105-infrastructure-as-code/readme.md b/src/roadmaps/devops/content/105-infrastructure-as-code/readme.md deleted file mode 100644 index 8ce9a7a6a..000000000 --- a/src/roadmaps/devops/content/105-infrastructure-as-code/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Infrastructure as Code - -Sometimes referred to as IaC, this section refers to the techniques and tools used to define infrastructure, typically in a markup language like YAML or JSON. Infrastructure as code allows DevOps Engineers to use the same workflows used by software developers to version, roll back, and otherwise manage changes. - -The term Infrastructure as Code encompasses everything from bootstrapping to configuration to orchestration, and it is considered a best practice in the industry to manage all infrastructure as code. This technique precipitated the explosion in system complexity seen in modern DevOps organizations. - -Free Content -What is Infrastructure as Code? -What is Infrastructure as Code? Difference of Infrastructure as Code Tools -GUIs, CLI, APIs: Learn Basic Terms of Infrastructure-as-Code -Understanding Infrastructure as Code (IaC) in less than 10 minutes diff --git a/src/roadmaps/devops/content/106-ci-cd/100-gitlab-ci.md b/src/roadmaps/devops/content/106-ci-cd/100-gitlab-ci.md index b83ad52fa..538e53567 100644 --- a/src/roadmaps/devops/content/106-ci-cd/100-gitlab-ci.md +++ b/src/roadmaps/devops/content/106-ci-cd/100-gitlab-ci.md @@ -3,8 +3,8 @@ GitLab offers a CI/CD service that can be used as a SaaS offering or self-managed using your own resources. You can use GitLab CI with any GitLab hosted repository, or any BitBucket Cloud or GitHub repository in the GitLab Premium self-managed, GitLab Premium SaaS and higher tiers. -GitLab Website -GitLab Documentation -Get Started with GitLab CI -Learn GitLab Tutorials -GitLab CI/CD Examples +- [GitLab Website](https://gitlab.com/) +- [GitLab Documentation](https://docs.gitlab.com/) +- [Get Started with GitLab CI](https://docs.gitlab.com/ee/ci/quick_start/) +- [Learn GitLab Tutorials](https://docs.gitlab.com/ee/tutorials/) +- [GitLab CI/CD Examples](https://docs.gitlab.com/ee/ci/examples/) diff --git a/src/roadmaps/devops/content/106-ci-cd/101-jenkins.md b/src/roadmaps/devops/content/106-ci-cd/101-jenkins.md index 46d7f7b3e..0efd549f1 100644 --- a/src/roadmaps/devops/content/106-ci-cd/101-jenkins.md +++ b/src/roadmaps/devops/content/106-ci-cd/101-jenkins.md @@ -2,6 +2,6 @@ Jenkins is an open-source CI/CD automation server. Jenkins is primarily used for building projects, running tests, static code analysis and deployments. -Jenkins Website -Official Jenkins Handbook -Jenkins Getting Started Guide +- [Jenkins Website](https://www.jenkins.io/) +- [Official Jenkins Handbook](https://www.jenkins.io/doc/book/) +- [Jenkins Getting Started Guide](https://www.jenkins.io/doc/pipeline/tour/getting-started/) diff --git a/src/roadmaps/devops/content/106-ci-cd/102-github-actions.md b/src/roadmaps/devops/content/106-ci-cd/102-github-actions.md index 5e57ee213..90512207c 100644 --- a/src/roadmaps/devops/content/106-ci-cd/102-github-actions.md +++ b/src/roadmaps/devops/content/106-ci-cd/102-github-actions.md @@ -2,8 +2,7 @@ Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. You can discover, create, and share actions to perform any job you'd like, including CI/CD, and combine actions in a completely customized workflow. -Free Content -GitHub Actions Documentation -Learn GitHub Actions -GitHub Actions - Supercharge your GitHub Flow -Automate your Workflow with GitHub Actions +- [GitHub Actions Documentation](https://docs.github.com/en/actions) +- [Learn GitHub Actions](https://docs.github.com/en/actions/learn-github-actions) +- [GitHub Actions - Supercharge your GitHub Flow](https://youtu.be/cP0I9w2coGU) +- [Automate your Workflow with GitHub Actions](https://www.youtube.com/watch?v=nyKZTKQS_EQ) diff --git a/src/roadmaps/devops/content/106-ci-cd/103-travis-ci.md b/src/roadmaps/devops/content/106-ci-cd/103-travis-ci.md index d22a163ca..e9869d20f 100644 --- a/src/roadmaps/devops/content/106-ci-cd/103-travis-ci.md +++ b/src/roadmaps/devops/content/106-ci-cd/103-travis-ci.md @@ -2,6 +2,6 @@ Travis CI is a CI/CD service that is primarily used for building and testing projects that are hosted on BitBucket and GitHub. Open source projects can utilize Travis CI for free. -Travis CI Website -Travis CI Documentation -Travis CI Tutorial +- [Travis CI Website](https://www.travis-ci.com/) +- [Travis CI Documentation](https://docs.travis-ci.com/) +- [Travis CI Tutorial](https://docs.travis-ci.com/user/tutorial/) diff --git a/src/roadmaps/devops/content/106-ci-cd/105-teamcity.md b/src/roadmaps/devops/content/106-ci-cd/105-teamcity.md index 11938e09f..4795e27de 100644 --- a/src/roadmaps/devops/content/106-ci-cd/105-teamcity.md +++ b/src/roadmaps/devops/content/106-ci-cd/105-teamcity.md @@ -2,7 +2,7 @@ TeamCity is a CI/CD service provided by JetBrains. TeamCity can be used as a SaaS offering or self-managed using your own resources. -TeamCity Website -Official Documentation -TeamCity Tutorials -TeamCity Learning Portal +- [TeamCity Website](https://www.jetbrains.com/teamcity/) +- [Official Documentation](https://www.jetbrains.com/help/teamcity/teamcity-documentation.html) +- [TeamCity Tutorials](https://www.jetbrains.com/teamcity/tutorials/) +- [TeamCity Learning Portal](https://www.jetbrains.com/teamcity/learn/) diff --git a/src/roadmaps/devops/content/106-ci-cd/106-azure-devops-services.md b/src/roadmaps/devops/content/106-ci-cd/106-azure-devops-services.md index 99b1377e5..93a482b5d 100644 --- a/src/roadmaps/devops/content/106-ci-cd/106-azure-devops-services.md +++ b/src/roadmaps/devops/content/106-ci-cd/106-azure-devops-services.md @@ -2,6 +2,6 @@ Azure DevOps is developed by Microsoft as a full scale application lifecycle management and CI/CD service. Azure DevOps provides developer services for allowing teams to plan work, collaborate on code development, and build and deploy applications. -Azure DevOps Website -Official Documentation -Azure DevOps Getting Started Guide +- [Azure DevOps Website](https://azure.microsoft.com/en-us/services/devops/#overview) +- [Official Documentation](https://docs.microsoft.com/en-us/azure/devops/?view=azure-devops&viewFallbackFrom=vsts) +- [Azure DevOps Getting Started Guide](https://docs.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops) diff --git a/src/roadmaps/devops/content/106-ci-cd/107-circle-ci.md b/src/roadmaps/devops/content/106-ci-cd/107-circle-ci.md index dc0d9ee2c..190e68d74 100644 --- a/src/roadmaps/devops/content/106-ci-cd/107-circle-ci.md +++ b/src/roadmaps/devops/content/106-ci-cd/107-circle-ci.md @@ -2,6 +2,6 @@ CircleCI is a CI/CD service that can be integrated with GitHub, BitBucket and GitLab repositories. The service that can be used as a SaaS offering or self-managed using your own resources. -CircleCI Website -CircleCI Documentation -Configuration Tutorial +- [CircleCI Website](https://circleci.com/) +- [CircleCI Documentation](https://circleci.com/docs) +- [Configuration Tutorial](https://circleci.com/docs/config-intro) diff --git a/src/roadmaps/devops/content/106-ci-cd/108-drone.md b/src/roadmaps/devops/content/106-ci-cd/108-drone.md index 1cb40cd86..baa0c67ec 100644 --- a/src/roadmaps/devops/content/106-ci-cd/108-drone.md +++ b/src/roadmaps/devops/content/106-ci-cd/108-drone.md @@ -2,6 +2,6 @@ Drone is a CI/CD service offering by [Harness](https://harness.io/). Each build runs on an isolated Docker container, and Drone integrates with many popular source code management repositories like GitHub, BitBucket and GitLab -Drone Website -Official Documentation -Drone Getting Started Guide +- [Drone Website](https://www.drone.io/) +- [Official Documentation](https://docs.drone.io/) +- [Drone Getting Started Guide](https://docs.drone.io/server/overview/) diff --git a/src/roadmaps/devops/content/106-ci-cd/readme.md b/src/roadmaps/devops/content/106-ci-cd/index.md similarity index 56% rename from src/roadmaps/devops/content/106-ci-cd/readme.md rename to src/roadmaps/devops/content/106-ci-cd/index.md index 5e32498ba..037c9a935 100644 --- a/src/roadmaps/devops/content/106-ci-cd/readme.md +++ b/src/roadmaps/devops/content/106-ci-cd/index.md @@ -4,7 +4,7 @@ CI/CD is a method to frequently deliver apps to customers by introducing automat Specifically, CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment. Taken together, these connected practices are often referred to as a "CI/CD pipeline" and are supported by development and operations teams working together in an agile way with either a DevOps or site reliability engineering (SRE) approach. -CI vs CD -What is CI/CD? -CI/CD Pipeline: A Gentle Introduction -DevOps CI/CD Explained in 100 Seconds +- [CI vs CD](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment) +- [What is CI/CD?](https://www.redhat.com/en/topics/devops/what-is-ci-cd) +- [CI/CD Pipeline: A Gentle Introduction](https://semaphoreci.com/blog/cicd-pipeline) +- [DevOps CI/CD Explained in 100 Seconds](https://www.youtube.com/watch?v=scEDHsr3APg) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/100-prometheus.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/100-prometheus.md index 4bae103c0..9e749fcb9 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/100-prometheus.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/100-prometheus.md @@ -2,6 +2,6 @@ Prometheus is a free software application used for event monitoring and alerting. It records real-time metrics in a time series database built using a HTTP pull model, with flexible queries and real-time alerting. -Prometheus Website -Official Documentation -Getting Started with Prometheus +- [Prometheus Website](https://prometheus.io/) +- [Official Documentation](https://prometheus.io/docs/introduction/overview/) +- [Getting Started with Prometheus](https://prometheus.io/docs/tutorials/getting_started/) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/101-nagios.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/101-nagios.md index c74c953cb..b4258d0d0 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/101-nagios.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/101-nagios.md @@ -2,7 +2,6 @@ Nagios is a powerful tool that provides you with instant awareness of your organization’s mission-critical IT infrastructure. Nagios allows you to detect and repair problems and mitigate future issues before they affect end-users and customers. -Free Content -Nagios Website -Official Documentation -Nagios Support Knowledge Base +- [Nagios Website](https://www.nagios.org/) +- [Official Documentation](https://www.nagios.org/documentation/) +- [Nagios Support Knowledge Base](https://support.nagios.com/kb/) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-datadog.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-datadog.md index 16818bd1b..d93ad8091 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-datadog.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-datadog.md @@ -2,5 +2,5 @@ Datadog is a monitoring and analytics platform for large-scale applications. It encompasses infrastructure monitoring, application performance monitoring, log management, and user-experience monitoring. Datadog aggregates data across your entire stack with 400+ integrations for troubleshooting, alerting, and graphing. -Datadog Website -Official Documentation +- [Datadog Website](https://www.datadoghq.com/) +- [Official Documentation](https://docs.datadoghq.com/) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-grafana.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-grafana.md index f2e84d2d3..f2e174b89 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-grafana.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-grafana.md @@ -2,8 +2,7 @@ Grafana is the open-source platform for monitoring and observability. It allows you to query, visualize, alert on and understand your metrics no matter where they are stored. -Free Content -Grafana Website -Grafana Official Documentation -Grafana Community -Grafana Webinars and Videos +- [Grafana Website](https://grafana.com/) +- [Grafana Official Documentation](https://grafana.com/docs/) +- [Grafana Community](https://community.grafana.com/) +- [Grafana Webinars and Videos](https://grafana.com/videos/) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-monit.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-monit.md index d98ca8ae8..32a1b3f0c 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-monit.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-monit.md @@ -6,7 +6,6 @@ Monit has the ability to start a process if it is not running, restart a process With Monit, you can able to monitor remote hosts’ TCP/IP port, server protocols, and ping. Monit keeps its own log file and alerts about any critical error conditions and recovery status. -Free Content -Monit Website -Monit Official Documentation -Monit Tutorial +- [Monit Website](https://mmonit.com/monit/) +- [Monit Official Documentation](https://mmonit.com/monit/documentation/monit.html) +- [Monit Tutorial](https://www.tecmint.com/monit-linux-services-monitoring/) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-zabbix.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-zabbix.md index c6fa08245..0e694b41b 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-zabbix.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/102-zabbix.md @@ -2,7 +2,6 @@ Zabbix is an enterprise-class open source monitoring solution for network monitoring and application monitoring of millions of metrics. -Free Content -Zabbix Website -Official Documentation -Zabbix Roadmap +- [Zabbix Website](https://www.zabbix.com/) +- [Official Documentation](https://www.zabbix.com/manuals) +- [Zabbix Roadmap](https://www.zabbix.com/roadmap) diff --git a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/readme.md b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/index.md similarity index 56% rename from src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/readme.md rename to src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/index.md index 32178cdac..c78130622 100644 --- a/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/readme.md +++ b/src/roadmaps/devops/content/107-monitoring/100-infrastructure-monitoring/index.md @@ -4,5 +4,5 @@ Monitoring refers to the practice of making the performance and status of infras This is a very vendor-heavy space - use caution when studying materials exclusively from a given product or project, as there are many conflicting opinions and strategies in use. There is no single solution for the most substantially complex internet-facing applications, so understanding the pros and cons of these tools will be useful in helping you plan how to monitor a system for a given goal. -Best Practices to Optimize Infrastructure Monitoring within DevOps Teams -Seven Steps to Effective Cloud Native Infrastructure Monitoring +- [Best Practices to Optimize Infrastructure Monitoring within DevOps Teams](https://thenewstack.io/best-practices-to-optimize-infrastructure-monitoring-within-devops-teams/) +- [Seven Steps to Effective Cloud Native Infrastructure Monitoring](https://thenewstack.io/seven-steps-to-effective-cloud-native-infrastructure-monitoring/) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/100-jaeger.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/100-jaeger.md index 8409d73a8..086028701 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/100-jaeger.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/100-jaeger.md @@ -2,6 +2,5 @@ Jaeger is an open source, end-to-end distributed tracing system that enables us to monitor and troubleshoot transactions in complex distributed systems. -Free Content -Jaeger Website -Official Documentation +- [Jaeger Website](https://www.jaegertracing.io/) +- [Official Documentation](https://www.jaegertracing.io/docs/1.37/) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/101-new-relic.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/101-new-relic.md index 27da98286..343450c1f 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/101-new-relic.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/101-new-relic.md @@ -2,7 +2,6 @@ New Relic is where dev, ops, security and business teams solve software–performance problems with data. -Free Content -New Relic Website -Official Documentation -New Relic Developer Hub +- [New Relic Website](https://newrelic.com/) +- [Official Documentation](https://docs.newrelic.com/) +- [New Relic Developer Hub](https://developer.newrelic.com/) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md index 06745bcf4..feb568add 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/102-app-dynamics.md @@ -2,6 +2,5 @@ AppDynamics is a full-stack application performance management (APM) and IT operations analytics (ITOA) company based in San Francisco. The company focuses on managing the performance and availability of applications across cloud computing environments, IT infrastructure, network architecture, digital user experience design, application security threat detection, observability, and data centers. -Free Content -AppDynamics Website -Official Resources +- [AppDynamics Website](https://www.appdynamics.com/) +- [Official Resources](https://www.appdynamics.com/resources) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/103-instana.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/103-instana.md index 79a94e7e0..6a50647ad 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/103-instana.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/103-instana.md @@ -2,6 +2,5 @@ Instana is particularly used in monitoring and managing the performance of software used in microservice architectures, and permits 3D visualisation of performance through graphs generated using machine learning algorithms, with notifications regarding performance also generated automatically. Instana's Application Performance Monitoring (APM) tool of the same name is especially purposed for monitoring software used in so-called "container orchestration" (a modular method of providing a software service). -Free Content -Instana Website -Official Resources(White Papers and Ebooks) +- [Instana Website](https://www.instana.com/) +- [Official Resources(White Papers and Ebooks) ](https://www.instana.com/resources/) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/104-open-telemetry.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/104-open-telemetry.md index 80eb58472..734826495 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/104-open-telemetry.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/104-open-telemetry.md @@ -2,6 +2,5 @@ OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior. -Free Content -OpenTelemetry Website -Official Documentation +- [OpenTelemetry Website](https://opentelemetry.io/) +- [Official Documentation](https://opentelemetry.io/docs/) diff --git a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/readme.md b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/index.md similarity index 50% rename from src/roadmaps/devops/content/107-monitoring/101-application-monitoring/readme.md rename to src/roadmaps/devops/content/107-monitoring/101-application-monitoring/index.md index cf73d092e..6534d7666 100644 --- a/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/readme.md +++ b/src/roadmaps/devops/content/107-monitoring/101-application-monitoring/index.md @@ -2,5 +2,5 @@ Application monitoring refers to the practice of making the status and performance of a given *application* visible. This may include details such as stacktraces, error logs, and the line of code implicated in a given failure. When combined with Infrastructure monitoring, this can provide a complete picture of what is happening in your system, and why. -Applying Basic vs. Advanced Monitoring Techniques -Why Legacy Apps Need Your Monitoring Love, Too +- [Applying Basic vs. Advanced Monitoring Techniques](https://thenewstack.io/applying-basic-vs-advanced-monitoring-techniques/) +- [Why Legacy Apps Need Your Monitoring Love, Too](https://thenewstack.io/why-legacy-apps-need-your-monitoring-love-too/) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/100-elastic-stack.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/100-elastic-stack.md index d520c4602..b30a816cb 100644 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/100-elastic-stack.md +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/100-elastic-stack.md @@ -6,8 +6,7 @@ Elastic Stack is a group of open source products comprised of Elasticsearch, Kib * `Logstash/fluentd` - Data processing pipeline * `Kibana` - Dashboard to visualize data -Free Content -Elastic Stack Website -Official Docs -Elastic Stack features -Logstash vs Fluentd +- [Elastic Stack Website](https://www.elastic.co/elastic-stack/) +- [Official Docs](https://www.elastic.co/guide/index.html) +- [Elastic Stack features](https://www.elastic.co/elastic-stack/features) +- [Logstash vs Fluentd](https://logz.io/blog/fluentd-logstash/) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/101-graylog.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/101-graylog.md index 54691c57f..0aec7ed86 100644 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/101-graylog.md +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/101-graylog.md @@ -2,7 +2,6 @@ Graylog is a leading centralized log management solution for capturing, storing, and enabling real-time analysis of terabytes of machine data. -Free Content -Graylog Website -Official Documentation -Product Videos +- [Graylog Website](https://www.graylog.org/) +- [Official Documentation](https://docs.graylog.org/) +- [Product Videos](https://www.graylog.org/resources-videos) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-papertrail.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-papertrail.md index b19004c0f..361b7df9a 100644 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-papertrail.md +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-papertrail.md @@ -2,7 +2,6 @@ Papertrail is a leading centralized log management solution for capturing, storing, and enabling real-time analysis of terabytes of machine data. -Free Content -Papertrail Website -Official Guides -Official Blog +- [Papertrail Website](https://www.papertrail.com/) +- [Official Guides](https://www.papertrail.com/solution/guides/) +- [Official Blog](https://www.papertrail.com/blog/) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-splunk.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-splunk.md index d70a87f1c..f2ce88ce8 100644 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-splunk.md +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/102-splunk.md @@ -2,7 +2,6 @@ The Splunk platform removes the barriers between data and action, empowering observability, IT and security teams to ensure their organizations are secure, resilient and innovative. -Free Content -Splunk Website -Official Documentation -Splunk Videos +- [Splunk Website](https://www.splunk.com/) +- [Official Documentation](https://docs.splunk.com/Documentation) +- [Splunk Videos](https://www.splunk.com/en_us/resources/videos.html) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/103-loki.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/103-loki.md index bdec0760c..265b62571 100644 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/103-loki.md +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/103-loki.md @@ -2,6 +2,5 @@ Loki is a horizontally scalable, highly available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost-effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream. -Free Content -Loki Website -Official Documentation +- [Loki Website](https://grafana.com/oss/loki/) +- [Official Documentation](https://grafana.com/docs/loki/latest/?pg=oss-loki&plcmt=quick-links) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/index.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/index.md new file mode 100644 index 000000000..1eaf592be --- /dev/null +++ b/src/roadmaps/devops/content/107-monitoring/102-logs-management/index.md @@ -0,0 +1,7 @@ +# Logs Management + +Log management is the process of handling log events generated by all software applications and infrastructure on which they run. It involves log collection, aggregation, parsing, storage, analysis, search, archiving, and disposal, with the ultimate goal of using the data for troubleshooting and gaining business insights, while also ensuring the compliance and security of applications and infrastructure. + +- [Introduction to Logs Management](https://sematext.com/guides/log-management) +- [Log Management: What DevOps Teams Need to Know](https://devops.com/log-management-what-devops-teams-need-to-know/) +- [Logging for Kubernetes: What to Log and How to Log It](https://thenewstack.io/logging-for-kubernetes-what-to-log-and-how-to-log-it/) diff --git a/src/roadmaps/devops/content/107-monitoring/102-logs-management/readme.md b/src/roadmaps/devops/content/107-monitoring/102-logs-management/readme.md deleted file mode 100644 index 87a72010a..000000000 --- a/src/roadmaps/devops/content/107-monitoring/102-logs-management/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Logs Management - -Log management is the process of handling log events generated by all software applications and infrastructure on which they run. It involves log collection, aggregation, parsing, storage, analysis, search, archiving, and disposal, with the ultimate goal of using the data for troubleshooting and gaining business insights, while also ensuring the compliance and security of applications and infrastructure. - -Introduction to Logs Management -Log Management: What DevOps Teams Need to Know -Logging for Kubernetes: What to Log and How to Log It diff --git a/src/roadmaps/devops/content/107-monitoring/readme.md b/src/roadmaps/devops/content/107-monitoring/index.md similarity index 55% rename from src/roadmaps/devops/content/107-monitoring/readme.md rename to src/roadmaps/devops/content/107-monitoring/index.md index 3416ac147..580442c59 100644 --- a/src/roadmaps/devops/content/107-monitoring/readme.md +++ b/src/roadmaps/devops/content/107-monitoring/index.md @@ -2,5 +2,5 @@ DevOps monitoring entails overseeing the entire development process from planning, development, integration and testing, deployment, and operations. It involves a complete and real-time view of the status of applications, services, and infrastructure in the production environment. Features such as real-time streaming, historical replay, and visualizations are critical components of application and service monitoring. -DevOps Monitoring -The Hows, Whys and Whats of Monitoring Microservices +- [DevOps Monitoring](https://www.atlassian.com/devops/devops-tools/devops-monitoring) +- [The Hows, Whys and Whats of Monitoring Microservices](https://thenewstack.io/the-hows-whys-and-whats-of-monitoring-microservices/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/100-aws.md b/src/roadmaps/devops/content/108-cloud-providers/100-aws.md index e6e29a875..fd45d1896 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/100-aws.md +++ b/src/roadmaps/devops/content/108-cloud-providers/100-aws.md @@ -4,13 +4,12 @@ Amazon Web Services has been the market leading cloud computing platform since 2 AWS service is an online platform that provides scalable and cost-effectove cloud computing solutions. It is broadly adopted cloud platform that offers several on-demand operations like compute power, database storage, content delivery and so on. -Free Content -AWS Website -AWS Documentation -Sign up for AWS -AWS Ramp Up Guide -Cloud Practitioner Essentials -AWS Guide by SimpliLearn -AWS Tutorial for Beginners -AWS Course for Beginners -DevOps on AWS Course +- [AWS Website](https://aws.amazon.com/) +- [AWS Documentation](https://docs.aws.amazon.com/) +- [Sign up for AWS](https://portal.aws.amazon.com/billing/signup) +- [AWS Ramp Up Guide](https://d1.awsstatic.com/training-and-certification/ramp-up_guides/Ramp-Up_Guide_CloudPractitioner.pdf) +- [Cloud Practitioner Essentials](https://explore.skillbuilder.aws/learn/course/external/view/elearning/134/aws-cloud-practitioner-essentials) +- [AWS Guide by SimpliLearn](https://www.simplilearn.com/tutorials/aws-tutorial/what-is-aws) +- [AWS Tutorial for Beginners](https://www.youtube.com/watch?v=k1RI5locZE4&t=129s) +- [AWS Course for Beginners](https://www.coursera.org/learn/aws-cloud-technical-essentials?specialization=aws-devops) +- [DevOps on AWS Course ](https://www.coursera.org/specializations/aws-devops?#courses) diff --git a/src/roadmaps/devops/content/108-cloud-providers/101-google-cloud.md b/src/roadmaps/devops/content/108-cloud-providers/101-google-cloud.md index 354ed2132..081bec934 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/101-google-cloud.md +++ b/src/roadmaps/devops/content/108-cloud-providers/101-google-cloud.md @@ -2,11 +2,9 @@ Google Cloud is Google's cloud computing service offering, providing over 150 products/services to choose from. It consists of a set of physical assets, such as computers and hard disk drives, and virtual resources, such as virtual machines(VMs), that are contained in Google's data centers. It runs on the same infrastructure that Google uses internally for its end-user products, such as Search, Gmail, Google Drive, and YouTube. -Google Cloud Website -Official Documentation -Google Cloud Get Started Guide -Coursera Complete Course for Google Cloud -Google Cloud by Edureka on You-Tube - - -5 Tips to Become a Google Cloud Certified Professional Architect +- [Google Cloud Website](https://cloud.google.com/) +- [Official Documentation](https://cloud.google.com/docs) +- [Google Cloud Get Started Guide](https://cloud.google.com/docs/get-started/) +- [Coursera Complete Course for Google Cloud ](https://www.coursera.org/professional-certificates/cloud-engineering-gcp#courses) +- [Google Cloud by Edureka on You-Tube](https://www.youtube.com/watch?v=IUU6OR8yHCc) +- [5 Tips to Become a Google Cloud Certified Professional Architect](https://thenewstack.io/5-tips-to-become-a-google-cloud-certified-professional-architect/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/102-azure.md b/src/roadmaps/devops/content/108-cloud-providers/102-azure.md index aa4df80ad..3968e4a50 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/102-azure.md +++ b/src/roadmaps/devops/content/108-cloud-providers/102-azure.md @@ -2,7 +2,7 @@ Microsoft Azure is a cloud computing service operated by Microsoft. Azure currently provides more than 200 products and cloud services. -Azure Website -Official Documentation -Azure Get Started Guide -Get to know Azure +- [Azure Website](https://azure.microsoft.com/en-us/) +- [Official Documentation](https://docs.microsoft.com/en-us/azure/) +- [Azure Get Started Guide](https://azure.microsoft.com/en-ca/get-started/#explore-azure) +- [Get to know Azure](https://azure.microsoft.com/en-us/explore/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/103-heroku.md b/src/roadmaps/devops/content/108-cloud-providers/103-heroku.md index b5b17b615..903390949 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/103-heroku.md +++ b/src/roadmaps/devops/content/108-cloud-providers/103-heroku.md @@ -2,6 +2,6 @@ Heroku is a cloud platform as a service subsidiary of Salesforce. Heroku officially supports Node.js, Ruby, Java, PHP, Python, Go, Scala and Clojure, along with any language that runs on Linux via a third-party build pack. -Heroku Website -Official Documentation -Heroku Get Started Guide +- [Heroku Website](https://www.heroku.com/) +- [Official Documentation](https://devcenter.heroku.com/) +- [Heroku Get Started Guide](https://devcenter.heroku.com/start) diff --git a/src/roadmaps/devops/content/108-cloud-providers/104-albaba-cloud.md b/src/roadmaps/devops/content/108-cloud-providers/104-albaba-cloud.md index 3aa874e0a..3c120c8b2 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/104-albaba-cloud.md +++ b/src/roadmaps/devops/content/108-cloud-providers/104-albaba-cloud.md @@ -2,6 +2,6 @@ Alibaba Cloud is a cloud computing service, offering over 100 products and services with data centers in 24 regions and 74 availability zones around the world. -Alibaba Cloud Website -Official Documentation -Alibaba Cloud Getting Started Guide +- [Alibaba Cloud Website](https://www.alibabacloud.com/) +- [Official Documentation](https://www.alibabacloud.com/help/en/) +- [Alibaba Cloud Getting Started Guide](https://www.alibabacloud.com/getting-started) diff --git a/src/roadmaps/devops/content/108-cloud-providers/104-digital-ocean.md b/src/roadmaps/devops/content/108-cloud-providers/104-digital-ocean.md index 8fe6aa95c..6301f63fe 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/104-digital-ocean.md +++ b/src/roadmaps/devops/content/108-cloud-providers/104-digital-ocean.md @@ -2,6 +2,6 @@ DigitalOcean is a cloud computing service offering products and services in Compute, Storage, Managed Databases, Containers & Images and Networking. -DigitalOcean Website -Official Documentation -DigitalOcean Get Started Guide +- [DigitalOcean Website](https://www.digitalocean.com/) +- [Official Documentation](https://docs.digitalocean.com/products/) +- [DigitalOcean Get Started Guide](https://docs.digitalocean.com/products/getting-started/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/105-linode.md b/src/roadmaps/devops/content/108-cloud-providers/105-linode.md index fd2f4d070..00925246f 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/105-linode.md +++ b/src/roadmaps/devops/content/108-cloud-providers/105-linode.md @@ -2,6 +2,6 @@ Linode is a cloud computing service owned by Akamai Technologies. Linode positions itself as an alternative to AWS, GCP and Azure by offering core services without complexity for most workloads. -Linode Website -Official Documentation -Linode Getting Started Guide +- [Linode Website](https://www.linode.com/) +- [Official Documentation](https://www.linode.com/docs/) +- [Linode Getting Started Guide](https://www.linode.com/docs/guides/getting-started/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/106-vultr.md b/src/roadmaps/devops/content/108-cloud-providers/106-vultr.md index 3cdd47b97..ae908829c 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/106-vultr.md +++ b/src/roadmaps/devops/content/108-cloud-providers/106-vultr.md @@ -2,5 +2,5 @@ Vultr is an infrastructure focussed cloud computing service, available in 25 locations worldwide. Vultur compute offers 100% SSD and high performance Intel vCPUs. -Vultr Website -Official Documentation +- [Vultr Website](https://www.vultr.com/) +- [Official Documentation](https://www.vultr.com/docs/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/108-IBM-Cloud.md b/src/roadmaps/devops/content/108-cloud-providers/108-IBM-Cloud.md index ef2a99acb..283ba3d8a 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/108-IBM-Cloud.md +++ b/src/roadmaps/devops/content/108-cloud-providers/108-IBM-Cloud.md @@ -2,11 +2,11 @@ IBM cloud computing is a set of cloud computing services that offers both platform as a service (PaaS) and infrastructure as a service (IaaS). IBM Cloud supports various languages and frameworks such as Go, Java™, Node.js, Python and Swift. -IBM cloud -IBM Cloud Documentation -IBM Cloud Essentials -IBM Cloud Training -Introduction to IBM Cloud -Developing in IBM Cloud -IBM Cloud Foundation Skills Series -The Beginner's Guide to IBM Cloud +- [IBM cloud](https://www.ibm.com/cloud) +- [IBM Cloud Documentation](https://cloud.ibm.com/docs) +- [IBM Cloud Essentials](https://www.coursera.org/learn/ibm-cloud-essentials) +- [IBM Cloud Training](https://www.ibm.com/training/cloud) +- [Introduction to IBM Cloud](https://www.youtube.com/watch?v=HzugDzl2cfg) +- [Developing in IBM Cloud](https://www.youtube.com/watch?v=Bsy6mhRc7ZA) +- [IBM Cloud Foundation Skills Series](https://youtube.com/playlist?list=PLmesOgYt3nKCfsXqx-A5k1bP7t146U4rz) +- [The Beginners Guide to IBM Cloud](https://developer.ibm.com/components/cloud-ibm/tutorials/) diff --git a/src/roadmaps/devops/content/108-cloud-providers/readme.md b/src/roadmaps/devops/content/108-cloud-providers/index.md similarity index 53% rename from src/roadmaps/devops/content/108-cloud-providers/readme.md rename to src/roadmaps/devops/content/108-cloud-providers/index.md index c76742355..93ee6cfd5 100644 --- a/src/roadmaps/devops/content/108-cloud-providers/readme.md +++ b/src/roadmaps/devops/content/108-cloud-providers/index.md @@ -2,6 +2,5 @@ Cloud providers provide a layer of APIs to abstract infrastructure and provision it based on security and billing boundaries. The cloud runs on servers in data centers, but the abstractions cleverly give the appearance of interacting with a single "platform" or large application. The ability to quickly provision, configure and secure resources with cloud providers has been key to both the tremendous success, and complexity, of modern DevOps. -Free Content -Cloud service provider -What are Cloud Providers? +- [Cloud service provider](https://www.techtarget.com/searchitchannel/definition/cloud-service-provider-cloud-provider) +- [What are Cloud Providers?](https://www.redhat.com/en/topics/cloud-computing/what-are-cloud-providers) diff --git a/src/roadmaps/devops/content/109-availability.md b/src/roadmaps/devops/content/109-availability.md index 6cbcd1232..b8d9d8936 100644 --- a/src/roadmaps/devops/content/109-availability.md +++ b/src/roadmaps/devops/content/109-availability.md @@ -4,6 +4,5 @@ Availability is the percentage of time that a system is functional and working a To achieve high levels of uptime, it is important to eliminate single points of failure so that a single device failure does not disrupt the entire service. High availability in the cloud is often achieved by creating clusters. Clusters are groups of devices (such as servers) that all have access to the same shared storage and function as one single server to provide uninterrupted availability. This way, if one server goes down, the others are able to pick up the load until it comes back online. Clusters can range from two servers to even multiple buildings of servers. -Free Content -How High Availability Works in the Cloud -Techniques for Achieving High Availability +- [How High Availability Works in the Cloud](https://codster.io/en/blog/high-availability-in-the-cloud/) +- [Techniques for Achieving High Availability](https://www.sqlservercentral.com/articles/cloud-computing-basics-achieving-high-availability-2) diff --git a/src/roadmaps/devops/content/110-data-management.md b/src/roadmaps/devops/content/110-data-management.md index 8c4fa94fb..ec1a85cec 100644 --- a/src/roadmaps/devops/content/110-data-management.md +++ b/src/roadmaps/devops/content/110-data-management.md @@ -4,5 +4,4 @@ Data management is the key element of cloud applications, and influences most of Additionally data should be protected at rest, in transit, and via authorized access mechanisms to maintain security assurances of confidentiality, integrity, and availability. Refer to the Azure Security Benchmark Data Protection Control for more information. -Free Content -Data management patterns +- [Data management patterns](https://docs.microsoft.com/en-us/azure/architecture/patterns/category/data-management) diff --git a/src/roadmaps/devops/content/111-design-and-implementation.md b/src/roadmaps/devops/content/111-design-and-implementation.md index 21a6cc83a..1112619a0 100644 --- a/src/roadmaps/devops/content/111-design-and-implementation.md +++ b/src/roadmaps/devops/content/111-design-and-implementation.md @@ -3,4 +3,4 @@ Good design encompasses factors such as consistency and coherence in component design and deployment, maintainability to simplify administration and development, and reusability to allow components and subsystems to be used in other applications and in other scenarios. Decisions made during the design and implementation phase have a huge impact on the quality and the total cost of ownership of cloud hosted applications and services. -Design and implementation patterns +- [Design and implementation patterns](https://docs.microsoft.com/en-us/azure/architecture/patterns/category/design-implementation) diff --git a/src/roadmaps/devops/content/112-management-and-monitoring.md b/src/roadmaps/devops/content/112-management-and-monitoring.md index d522bfd2e..c92ae4541 100644 --- a/src/roadmaps/devops/content/112-management-and-monitoring.md +++ b/src/roadmaps/devops/content/112-management-and-monitoring.md @@ -2,4 +2,4 @@ DevOps management and monitoring entails overseeing the entire development process from planning, development, integration and testing, deployment, and operations. It involves a complete and real-time view of the status of applications, services, and infrastructure in the production environment. Features such as real-time streaming, historical replay, and visualizations are critical components of application and service monitoring. -Management and Monitoring Get Started Guide \ No newline at end of file +- [Management and Monitoring Get Started Guide](https://www.atlassian.com/devops/devops-tools/devops-monitoring) \ No newline at end of file diff --git a/src/roadmaps/devops/content/readme.md b/src/roadmaps/devops/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/devops/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/flutter/content/100-dart-basics/100-dart-pad.md b/src/roadmaps/flutter/content/100-dart-basics/100-dart-pad.md index 5ff8fee44..1faae9657 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/100-dart-pad.md +++ b/src/roadmaps/flutter/content/100-dart-basics/100-dart-pad.md @@ -2,5 +2,4 @@ DartPad is an open source tool that lets you play with the Dart language in any modern browser. -Free Content -DartPad +- [DartPad](https://dart.dev/tools/dartpad) diff --git a/src/roadmaps/flutter/content/100-dart-basics/101-variables.md b/src/roadmaps/flutter/content/100-dart-basics/101-variables.md index 594f53a7a..1e7709744 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/101-variables.md +++ b/src/roadmaps/flutter/content/100-dart-basics/101-variables.md @@ -1,4 +1,3 @@ # Variables -Free Content -Variables +- [Variables](https://dart.dev/guides/language/language-tour#variables) diff --git a/src/roadmaps/flutter/content/100-dart-basics/102-built-in-types.md b/src/roadmaps/flutter/content/100-dart-basics/102-built-in-types.md index b2e9d978d..fe2d8492e 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/102-built-in-types.md +++ b/src/roadmaps/flutter/content/100-dart-basics/102-built-in-types.md @@ -1,4 +1,3 @@ # Built in types -Free Content -Built-in types +- [Built-in types](https://dart.dev/guides/language/language-tour#built-in-types) diff --git a/src/roadmaps/flutter/content/100-dart-basics/103-functions.md b/src/roadmaps/flutter/content/100-dart-basics/103-functions.md index 0c9e3dd02..55610280a 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/103-functions.md +++ b/src/roadmaps/flutter/content/100-dart-basics/103-functions.md @@ -1,4 +1,3 @@ # Functions -Free Content -Functions +- [Functions](https://dart.dev/guides/language/language-tour#functions) diff --git a/src/roadmaps/flutter/content/100-dart-basics/104-operators.md b/src/roadmaps/flutter/content/100-dart-basics/104-operators.md index 23bbd664c..f71586001 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/104-operators.md +++ b/src/roadmaps/flutter/content/100-dart-basics/104-operators.md @@ -1,4 +1,3 @@ # Operators -Free Content -Operators +- [Operators](https://dart.dev/guides/language/language-tour#operators) diff --git a/src/roadmaps/flutter/content/100-dart-basics/105-control-flow-statements.md b/src/roadmaps/flutter/content/100-dart-basics/105-control-flow-statements.md index f3e277fda..a1a40785f 100644 --- a/src/roadmaps/flutter/content/100-dart-basics/105-control-flow-statements.md +++ b/src/roadmaps/flutter/content/100-dart-basics/105-control-flow-statements.md @@ -1,4 +1,3 @@ # Control flow statements -Free Content -Control flow statements +- [Control flow statements](https://dart.dev/guides/language/language-tour#control-flow-statements) diff --git a/src/roadmaps/flutter/content/100-dart-basics/index.md b/src/roadmaps/flutter/content/100-dart-basics/index.md new file mode 100644 index 000000000..ac5063698 --- /dev/null +++ b/src/roadmaps/flutter/content/100-dart-basics/index.md @@ -0,0 +1,10 @@ +# Dart Basics + +Dart is an open-source, general-purpose, object-oriented programming language with C-style syntax developed by Google in 2011. The purpose of Dart programming is to create a frontend user interfaces for the web and mobile apps. + +- [Dart Overview](https://dart.dev/overview) +- [What is Dart Programming?](https://www.javatpoint.com/flutter-dart-programming) +- [Dart Tutorial](https://www.geeksforgeeks.org/dart-tutorial/) +- [About Dart](https://flutterbyexample.com/lesson/about-dart) +- [What is Dart?](https://www.youtube.com/watch?v=sOSd6G1qXoY) +- [Dart in 100 Seconds](https://www.youtube.com/watch?v=NrO0CJCbYLA) diff --git a/src/roadmaps/flutter/content/100-dart-basics/readme.md b/src/roadmaps/flutter/content/100-dart-basics/readme.md deleted file mode 100644 index 61ed92b2a..000000000 --- a/src/roadmaps/flutter/content/100-dart-basics/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Dart Basics - -Dart is an open-source, general-purpose, object-oriented programming language with C-style syntax developed by Google in 2011. The purpose of Dart programming is to create a frontend user interfaces for the web and mobile apps. - -Free Content -Dart Overview -What is Dart Programming? -Dart Tutorial -About Dart -What is Dart? -Dart in 100 Seconds diff --git a/src/roadmaps/flutter/content/101-setup-development-environment/100-flutter-cli.md b/src/roadmaps/flutter/content/101-setup-development-environment/100-flutter-cli.md index 6774d264a..b800a7f25 100644 --- a/src/roadmaps/flutter/content/101-setup-development-environment/100-flutter-cli.md +++ b/src/roadmaps/flutter/content/101-setup-development-environment/100-flutter-cli.md @@ -2,5 +2,4 @@ The flutter command-line tool is how developers (or IDEs on behalf of developers) interact with Flutter. -Free Content -The Flutter command-line tool +- [The Flutter command-line tool](https://docs.flutter.dev/reference/flutter-cli) diff --git a/src/roadmaps/flutter/content/101-setup-development-environment/101-ides/readme.md b/src/roadmaps/flutter/content/101-setup-development-environment/101-ides/index.md similarity index 100% rename from src/roadmaps/flutter/content/101-setup-development-environment/101-ides/readme.md rename to src/roadmaps/flutter/content/101-setup-development-environment/101-ides/index.md diff --git a/src/roadmaps/flutter/content/101-setup-development-environment/readme.md b/src/roadmaps/flutter/content/101-setup-development-environment/index.md similarity index 100% rename from src/roadmaps/flutter/content/101-setup-development-environment/readme.md rename to src/roadmaps/flutter/content/101-setup-development-environment/index.md diff --git a/src/roadmaps/flutter/content/102-widgets/100-stateless-widgets.md b/src/roadmaps/flutter/content/102-widgets/100-stateless-widgets.md index 648ddf2fb..6b960fd18 100644 --- a/src/roadmaps/flutter/content/102-widgets/100-stateless-widgets.md +++ b/src/roadmaps/flutter/content/102-widgets/100-stateless-widgets.md @@ -2,5 +2,4 @@ A stateless widget never changes. Icon, IconButton, and Text are examples of stateless widgets. -Free Content -StatelessWidget class +- [StatelessWidget class](https://api.flutter.dev/flutter/widgets/StatelessWidget-class.html) diff --git a/src/roadmaps/flutter/content/102-widgets/101-stateful-widgets.md b/src/roadmaps/flutter/content/102-widgets/101-stateful-widgets.md index 1f7a72382..f16e84201 100644 --- a/src/roadmaps/flutter/content/102-widgets/101-stateful-widgets.md +++ b/src/roadmaps/flutter/content/102-widgets/101-stateful-widgets.md @@ -2,5 +2,4 @@ A stateful widget is dynamic: for example, it can change its appearance in response to events triggered by user interactions or when it receives data. Checkbox, Radio, Slider, InkWell, Form, and TextField are examples of stateful widgets. -Free Content -StatefulWidget class +- [StatefulWidget class](https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html) diff --git a/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/100-material-widgets.md b/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/100-material-widgets.md index 412df894b..0ea9dfca6 100644 --- a/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/100-material-widgets.md +++ b/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/100-material-widgets.md @@ -2,5 +2,4 @@ Visual, behavioral, and motion-rich widgets implementing the Material Design guidelines. -Free Content -Material Components widgets +- [Material Components widgets](https://docs.flutter.dev/development/ui/widgets/material) diff --git a/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/101-cupertino-widgets.md b/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/101-cupertino-widgets.md index c4af94687..4ab57c58d 100644 --- a/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/101-cupertino-widgets.md +++ b/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/101-cupertino-widgets.md @@ -2,5 +2,4 @@ Beautiful and high-fidelity widgets for current iOS design language. -Free Content -Cupertino (iOS-style) widgets +- [Cupertino (iOS-style) widgets](https://docs.flutter.dev/development/ui/widgets/cupertino) diff --git a/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/readme.md b/src/roadmaps/flutter/content/102-widgets/102-styled-widgets/index.md similarity index 100% rename from src/roadmaps/flutter/content/102-widgets/102-styled-widgets/readme.md rename to src/roadmaps/flutter/content/102-widgets/102-styled-widgets/index.md diff --git a/src/roadmaps/flutter/content/102-widgets/readme.md b/src/roadmaps/flutter/content/102-widgets/index.md similarity index 100% rename from src/roadmaps/flutter/content/102-widgets/readme.md rename to src/roadmaps/flutter/content/102-widgets/index.md diff --git a/src/roadmaps/flutter/content/103-working-with-assets/100-fonts.md b/src/roadmaps/flutter/content/103-working-with-assets/100-fonts.md index f4ccfb071..35868c46b 100644 --- a/src/roadmaps/flutter/content/103-working-with-assets/100-fonts.md +++ b/src/roadmaps/flutter/content/103-working-with-assets/100-fonts.md @@ -2,5 +2,4 @@ Flutter works with custom fonts and you can apply a custom font across an entire app or to individual widgets. -Free Content -Use a custom font +- [Use a custom font](https://docs.flutter.dev/cookbook/design/fonts) diff --git a/src/roadmaps/flutter/content/103-working-with-assets/101-images.md b/src/roadmaps/flutter/content/103-working-with-assets/101-images.md index bbb2be7b3..65d81cdbc 100644 --- a/src/roadmaps/flutter/content/103-working-with-assets/101-images.md +++ b/src/roadmaps/flutter/content/103-working-with-assets/101-images.md @@ -2,5 +2,4 @@ Apps can include both code and assets. Flutter uses the pubspec.yaml file, located at the root of your project, to identify assets required by an app. -Free Content -Adding assets and images +- [Adding assets and images](https://docs.flutter.dev/development/ui/assets-and-images) diff --git a/src/roadmaps/flutter/content/103-working-with-assets/readme.md b/src/roadmaps/flutter/content/103-working-with-assets/index.md similarity index 100% rename from src/roadmaps/flutter/content/103-working-with-assets/readme.md rename to src/roadmaps/flutter/content/103-working-with-assets/index.md diff --git a/src/roadmaps/flutter/content/104-version-control-systems/readme.md b/src/roadmaps/flutter/content/104-version-control-systems/index.md similarity index 100% rename from src/roadmaps/flutter/content/104-version-control-systems/readme.md rename to src/roadmaps/flutter/content/104-version-control-systems/index.md diff --git a/src/roadmaps/flutter/content/105-repo-hosting-services/readme.md b/src/roadmaps/flutter/content/105-repo-hosting-services/index.md similarity index 100% rename from src/roadmaps/flutter/content/105-repo-hosting-services/readme.md rename to src/roadmaps/flutter/content/105-repo-hosting-services/index.md diff --git a/src/roadmaps/flutter/content/106-design-principles/readme.md b/src/roadmaps/flutter/content/106-design-principles/index.md similarity index 100% rename from src/roadmaps/flutter/content/106-design-principles/readme.md rename to src/roadmaps/flutter/content/106-design-principles/index.md diff --git a/src/roadmaps/flutter/content/107-package-manager/100-pub-dev.md b/src/roadmaps/flutter/content/107-package-manager/100-pub-dev.md index 3b482c06d..12744933f 100644 --- a/src/roadmaps/flutter/content/107-package-manager/100-pub-dev.md +++ b/src/roadmaps/flutter/content/107-package-manager/100-pub-dev.md @@ -2,6 +2,5 @@ Flutter supports using shared packages contributed by other developers to the Flutter and Dart ecosystems. -Free Content -pub.dev -Using packages +- [pub.dev](https://pub.dev/) +- [Using packages](https://docs.flutter.dev/development/packages-and-plugins/using-packages) diff --git a/src/roadmaps/flutter/content/107-package-manager/readme.md b/src/roadmaps/flutter/content/107-package-manager/index.md similarity index 54% rename from src/roadmaps/flutter/content/107-package-manager/readme.md rename to src/roadmaps/flutter/content/107-package-manager/index.md index 970511f38..0cc864a97 100644 --- a/src/roadmaps/flutter/content/107-package-manager/readme.md +++ b/src/roadmaps/flutter/content/107-package-manager/index.md @@ -2,5 +2,4 @@ The package manager for Flutter is called pub. It is used to manage Flutter projects' dependencies and publish Flutter packages. It is included with the Flutter SDK and can be run from the command line using the `pub` command. -Free Content -Packages and Plugins +- [Packages and Plugins](https://docs.flutter.dev/development/packages-and-plugins) diff --git a/src/roadmaps/flutter/content/108-working-with-apis/100-json.md b/src/roadmaps/flutter/content/108-working-with-apis/100-json.md index b98f016a8..6a081df2d 100644 --- a/src/roadmaps/flutter/content/108-working-with-apis/100-json.md +++ b/src/roadmaps/flutter/content/108-working-with-apis/100-json.md @@ -2,5 +2,4 @@ JSON (JavaScript Object Notation) is a simple data interchange format used to communicate with server, store and retrieve data from it. -Free Content -JSON and serialization +- [JSON and serialization](https://docs.flutter.dev/development/data-and-backend/json) diff --git a/src/roadmaps/flutter/content/108-working-with-apis/101-web-sockets.md b/src/roadmaps/flutter/content/108-working-with-apis/101-web-sockets.md index 2895806dd..d931f5d0d 100644 --- a/src/roadmaps/flutter/content/108-working-with-apis/101-web-sockets.md +++ b/src/roadmaps/flutter/content/108-working-with-apis/101-web-sockets.md @@ -3,5 +3,4 @@ In addition to normal HTTP requests, you can connect to servers using WebSockets. Web sockets allows for bidirectional communication between a client (such as a web browser) and a server over a single, long-lived connection. They are a more efficient alternative to HTTP for providing real-time data, as they allow for the server to push data to the client as soon as it becomes available, rather than requiring the client to continuously poll the server for updates. -Free Content -Work with WebSockets +- [Work with WebSockets](https://docs.flutter.dev/cookbook/networking/web-sockets) diff --git a/src/roadmaps/flutter/content/108-working-with-apis/103-restful-apis.md b/src/roadmaps/flutter/content/108-working-with-apis/103-restful-apis.md index 89298f1e9..3171ffee3 100644 --- a/src/roadmaps/flutter/content/108-working-with-apis/103-restful-apis.md +++ b/src/roadmaps/flutter/content/108-working-with-apis/103-restful-apis.md @@ -2,9 +2,7 @@ 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 - -What is REST? -What is a REST API? -Roy Fielding's dissertation chapter, "Representational State Transfer (REST)" -Learn REST: A RESTful Tutorial +- [What is REST?](https://www.codecademy.com/article/what-is-rest) +- [What is a REST API?](https://www.redhat.com/en/topics/api/what-is-a-rest-api) +- [Roy Fieldings dissertation chapter, Representational State Transfer (REST)](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) +- [Learn REST: A RESTful Tutorial](https://restapitutorial.com/) diff --git a/src/roadmaps/flutter/content/108-working-with-apis/readme.md b/src/roadmaps/flutter/content/108-working-with-apis/index.md similarity index 100% rename from src/roadmaps/flutter/content/108-working-with-apis/readme.md rename to src/roadmaps/flutter/content/108-working-with-apis/index.md diff --git a/src/roadmaps/flutter/content/109-storage/100-sqlite.md b/src/roadmaps/flutter/content/109-storage/100-sqlite.md index 9b078ff7d..aadc6c85b 100644 --- a/src/roadmaps/flutter/content/109-storage/100-sqlite.md +++ b/src/roadmaps/flutter/content/109-storage/100-sqlite.md @@ -2,5 +2,4 @@ SQLite is an open-source, lightweight relational database management system (RDBMS) used to store and manage data. It is written in C and self-contained, meaning it does not require a separate server process or system. SQLite is commonly used in mobile applications, embedded systems, and web browsers and is also supported by many programming languages. It is a popular choice for databases because it is easy to use and does not require a lot of setup or configuration. -Free Content -sqflite - pub.dev package +- [sqflite - pub.dev package](https://pub.dev/packages/sqflite) diff --git a/src/roadmaps/flutter/content/109-storage/101-shared-preferences.md b/src/roadmaps/flutter/content/109-storage/101-shared-preferences.md index 5ef9b4903..57ae9bfb8 100644 --- a/src/roadmaps/flutter/content/109-storage/101-shared-preferences.md +++ b/src/roadmaps/flutter/content/109-storage/101-shared-preferences.md @@ -2,5 +2,4 @@ In Flutter, SharedPreferences is a plugin allowing you to store data in key-value pairs persistently. It is similar to a local database or cache, but it is specifically designed to store small pieces of data, such as user preferences or settings. The SharedPreferences plugin is often used to store simple pieces of data that need to be accessed by multiple screens or widgets in an app. For example, you might use SharedPreferences to store the user's login status or the app's theme color. -Free Content -shared_preferences - pub.dev package +- [shared_preferences - pub.dev package](https://pub.dev/packages/shared_preferences) diff --git a/src/roadmaps/flutter/content/109-storage/102-firebase/readme.md b/src/roadmaps/flutter/content/109-storage/102-firebase/index.md similarity index 57% rename from src/roadmaps/flutter/content/109-storage/102-firebase/readme.md rename to src/roadmaps/flutter/content/109-storage/102-firebase/index.md index d7b04d7a7..511faeee4 100644 --- a/src/roadmaps/flutter/content/109-storage/102-firebase/readme.md +++ b/src/roadmaps/flutter/content/109-storage/102-firebase/index.md @@ -2,5 +2,4 @@ Firebase is a Backend-as-a-Service (BaaS) app development platform that provides hosted backend services such as a realtime database, cloud storage, authentication, crash reporting, machine learning, remote configuration, and hosting for your static files. -Free Content -Firebase +- [Firebase](https://docs.flutter.dev/development/data-and-backend/firebase) diff --git a/src/roadmaps/flutter/content/109-storage/readme.md b/src/roadmaps/flutter/content/109-storage/index.md similarity index 100% rename from src/roadmaps/flutter/content/109-storage/readme.md rename to src/roadmaps/flutter/content/109-storage/index.md diff --git a/src/roadmaps/flutter/content/110-advanced-dart/100-core-libraries.md b/src/roadmaps/flutter/content/110-advanced-dart/100-core-libraries.md index 39d44b1ed..2e7f17b9c 100644 --- a/src/roadmaps/flutter/content/110-advanced-dart/100-core-libraries.md +++ b/src/roadmaps/flutter/content/110-advanced-dart/100-core-libraries.md @@ -2,5 +2,4 @@ Dart has a rich set of core libraries that provide essentials for many everyday programming tasks such as working on collections of objects (dart:collection), making calculations (dart:math), and encoding/decoding data (dart:convert). -Free Content -Core libraries +- [Core libraries](https://dart.dev/guides/libraries) diff --git a/src/roadmaps/flutter/content/110-advanced-dart/readme.md b/src/roadmaps/flutter/content/110-advanced-dart/index.md similarity index 100% rename from src/roadmaps/flutter/content/110-advanced-dart/readme.md rename to src/roadmaps/flutter/content/110-advanced-dart/index.md diff --git a/src/roadmaps/flutter/content/111-state-management/100-provider.md b/src/roadmaps/flutter/content/111-state-management/100-provider.md index bbd6c1b1c..0a12283bf 100644 --- a/src/roadmaps/flutter/content/111-state-management/100-provider.md +++ b/src/roadmaps/flutter/content/111-state-management/100-provider.md @@ -2,6 +2,5 @@ Provider is a wrapper around InheritedWidget (base class for widgets that efficiently propagate information down the tree) to make them easier to use and more reusable. -Free Content -provider -Simple app state management +- [provider](https://pub.dev/packages/provider) +- [Simple app state management](https://docs.flutter.dev/development/data-and-backend/state-mgmt/simple) diff --git a/src/roadmaps/flutter/content/111-state-management/102-flutter-bloc.md b/src/roadmaps/flutter/content/111-state-management/102-flutter-bloc.md index aad7a4852..187d6836e 100644 --- a/src/roadmaps/flutter/content/111-state-management/102-flutter-bloc.md +++ b/src/roadmaps/flutter/content/111-state-management/102-flutter-bloc.md @@ -2,6 +2,5 @@ State management library exposing widgets which can help handle all possible states of the application. -Free Content -Core Concepts -flutter_bloc +- [Core Concepts](https://bloclibrary.dev/#/flutterbloccoreconcepts) +- [flutter_bloc](https://pub.dev/packages/flutter_bloc) diff --git a/src/roadmaps/flutter/content/111-state-management/105-redux.md b/src/roadmaps/flutter/content/111-state-management/105-redux.md index e9038b45f..4ebcfb448 100644 --- a/src/roadmaps/flutter/content/111-state-management/105-redux.md +++ b/src/roadmaps/flutter/content/111-state-management/105-redux.md @@ -2,5 +2,4 @@ A set of utilities that allow you to easily consume a Redux Store to build Flutter Widgets. -Free Content -flutter_redux +- [flutter_redux](https://pub.dev/packages/flutter_redux) diff --git a/src/roadmaps/flutter/content/111-state-management/readme.md b/src/roadmaps/flutter/content/111-state-management/index.md similarity index 100% rename from src/roadmaps/flutter/content/111-state-management/readme.md rename to src/roadmaps/flutter/content/111-state-management/index.md diff --git a/src/roadmaps/flutter/content/112-animations/104-hero.md b/src/roadmaps/flutter/content/112-animations/104-hero.md index 7c1a3c19f..93e7dbeba 100644 --- a/src/roadmaps/flutter/content/112-animations/104-hero.md +++ b/src/roadmaps/flutter/content/112-animations/104-hero.md @@ -2,5 +2,4 @@ Flying an image from one screen to another is called a hero animation in Flutter, though the same motion is sometimes referred to as a shared element transition. -Free Content -Hero animations +- [Hero animations](https://docs.flutter.dev/development/ui/animations/hero-animations) diff --git a/src/roadmaps/flutter/content/112-animations/105-opacity.md b/src/roadmaps/flutter/content/112-animations/105-opacity.md index 45bda6bed..173586c80 100644 --- a/src/roadmaps/flutter/content/112-animations/105-opacity.md +++ b/src/roadmaps/flutter/content/112-animations/105-opacity.md @@ -2,5 +2,4 @@ The AnimatedOpacity widget makes it easy to perform opacity animations. -Free Content -Fade a widget in and out +- [Fade a widget in and out](https://docs.flutter.dev/cookbook/animation/opacity-animation) diff --git a/src/roadmaps/flutter/content/112-animations/readme.md b/src/roadmaps/flutter/content/112-animations/index.md similarity index 56% rename from src/roadmaps/flutter/content/112-animations/readme.md rename to src/roadmaps/flutter/content/112-animations/index.md index 0fb7679e6..97b2f139b 100644 --- a/src/roadmaps/flutter/content/112-animations/readme.md +++ b/src/roadmaps/flutter/content/112-animations/index.md @@ -2,5 +2,4 @@ Flutter’s animation support makes it easy to implement a variety of animation types. Many widgets, especially Material widgets, come with the standard motion effects defined in their design spec, but it’s also possible to customize these effects. -Free Content -Introduction to animations +- [Introduction to animations](https://docs.flutter.dev/development/ui/animations) diff --git a/src/roadmaps/flutter/content/113-testing/100-unit-testing.md b/src/roadmaps/flutter/content/113-testing/100-unit-testing.md index 772a19fee..d47e3599a 100644 --- a/src/roadmaps/flutter/content/113-testing/100-unit-testing.md +++ b/src/roadmaps/flutter/content/113-testing/100-unit-testing.md @@ -2,5 +2,4 @@ Unit tests are handy for verifying the behavior of a single function, method, or class. -Free Content -An introduction to unit testing +- [An introduction to unit testing](https://docs.flutter.dev/cookbook/testing/unit/introduction) diff --git a/src/roadmaps/flutter/content/113-testing/101-widget-testing.md b/src/roadmaps/flutter/content/113-testing/101-widget-testing.md index abbed579b..9cbbbabb6 100644 --- a/src/roadmaps/flutter/content/113-testing/101-widget-testing.md +++ b/src/roadmaps/flutter/content/113-testing/101-widget-testing.md @@ -2,5 +2,4 @@ Flutter provides necessary tools and libraries to test widget classes. -Free Content -An introduction to widget testing +- [An introduction to widget testing](https://docs.flutter.dev/cookbook/testing/widget/introduction) diff --git a/src/roadmaps/flutter/content/113-testing/102-integration-testing.md b/src/roadmaps/flutter/content/113-testing/102-integration-testing.md index e604fd42a..c8a14997a 100644 --- a/src/roadmaps/flutter/content/113-testing/102-integration-testing.md +++ b/src/roadmaps/flutter/content/113-testing/102-integration-testing.md @@ -2,5 +2,4 @@ Integration tests check how individual pieces work together as a whole, capture the performance of an application. -Free Content -An introduction to integration testing +- [An introduction to integration testing](https://docs.flutter.dev/cookbook/testing/integration/introduction) diff --git a/src/roadmaps/flutter/content/113-testing/readme.md b/src/roadmaps/flutter/content/113-testing/index.md similarity index 100% rename from src/roadmaps/flutter/content/113-testing/readme.md rename to src/roadmaps/flutter/content/113-testing/index.md diff --git a/src/roadmaps/flutter/content/114-reactive-programming/readme.md b/src/roadmaps/flutter/content/114-reactive-programming/index.md similarity index 100% rename from src/roadmaps/flutter/content/114-reactive-programming/readme.md rename to src/roadmaps/flutter/content/114-reactive-programming/index.md diff --git a/src/roadmaps/flutter/content/115-dev-tools/100-flutter-inspector.md b/src/roadmaps/flutter/content/115-dev-tools/100-flutter-inspector.md index 2ccdcd096..24fdb47e8 100644 --- a/src/roadmaps/flutter/content/115-dev-tools/100-flutter-inspector.md +++ b/src/roadmaps/flutter/content/115-dev-tools/100-flutter-inspector.md @@ -2,5 +2,4 @@ The Flutter widget inspector is a powerful tool for visualizing and exploring Flutter widget trees. -Free Content -Using the Flutter inspector +- [Using the Flutter inspector](https://docs.flutter.dev/development/tools/devtools/inspector) diff --git a/src/roadmaps/flutter/content/115-dev-tools/readme.md b/src/roadmaps/flutter/content/115-dev-tools/index.md similarity index 100% rename from src/roadmaps/flutter/content/115-dev-tools/readme.md rename to src/roadmaps/flutter/content/115-dev-tools/index.md diff --git a/src/roadmaps/flutter/content/116-flutter-internals/readme.md b/src/roadmaps/flutter/content/116-flutter-internals/index.md similarity index 100% rename from src/roadmaps/flutter/content/116-flutter-internals/readme.md rename to src/roadmaps/flutter/content/116-flutter-internals/index.md diff --git a/src/roadmaps/flutter/content/117-ci-cd/readme.md b/src/roadmaps/flutter/content/117-ci-cd/index.md similarity index 100% rename from src/roadmaps/flutter/content/117-ci-cd/readme.md rename to src/roadmaps/flutter/content/117-ci-cd/index.md diff --git a/src/roadmaps/flutter/content/118-analytics/readme.md b/src/roadmaps/flutter/content/118-analytics/index.md similarity index 100% rename from src/roadmaps/flutter/content/118-analytics/readme.md rename to src/roadmaps/flutter/content/118-analytics/index.md diff --git a/src/roadmaps/flutter/content/119-deployment/readme.md b/src/roadmaps/flutter/content/119-deployment/index.md similarity index 100% rename from src/roadmaps/flutter/content/119-deployment/readme.md rename to src/roadmaps/flutter/content/119-deployment/index.md diff --git a/src/roadmaps/flutter/content/readme.md b/src/roadmaps/flutter/content/readme.md deleted file mode 100644 index 4e768b56d..000000000 --- a/src/roadmaps/flutter/content/readme.md +++ /dev/null @@ -1 +0,0 @@ -# \ No newline at end of file diff --git a/src/roadmaps/frontend/content/100-internet/100-how-does-the-internet-work.md b/src/roadmaps/frontend/content/100-internet/100-how-does-the-internet-work.md index 956b89101..ca1cda498 100644 --- a/src/roadmaps/frontend/content/100-internet/100-how-does-the-internet-work.md +++ b/src/roadmaps/frontend/content/100-internet/100-how-does-the-internet-work.md @@ -2,10 +2,9 @@ The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. -Free Content -The Internet Explained -How Does the Internet Work? -How Does the Internet Work? MDN Docs -Introduction to Internet -How does the Internet work? -How the Internet Works in 5 Minutes +- [The Internet Explained](https://www.vox.com/2014/6/16/18076282/the-internet) +- [How Does the Internet Work?](http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm) +- [How Does the Internet Work? MDN Docs](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work) +- [Introduction to Internet](/guides/what-is-internet) +- [How does the Internet work?](https://www.youtube.com/watch?v=TNQsmPf24go) +- [How the Internet Works in 5 Minutes](https://www.youtube.com/watch?v=7_LPdttKXPc) diff --git a/src/roadmaps/frontend/content/100-internet/101-what-is-http.md b/src/roadmaps/frontend/content/100-internet/101-what-is-http.md index 2e8aad4bd..9f87ec624 100644 --- a/src/roadmaps/frontend/content/100-internet/101-what-is-http.md +++ b/src/roadmaps/frontend/content/100-internet/101-what-is-http.md @@ -2,11 +2,10 @@ HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. HTTP follows a classical "Client-Server model" with a client opening a connection request, then waiting until it receives a response. HTTP is a stateless protocol, that means that the server does not keep any data (state) between two requests. -Free Content -What is HTTP? -How HTTPS Works ...in a comic! -An overview of HTTP -Journey to HTTP/2 -HTTP/3 From A To Z: Core Concepts -HTTP/3 Is Now a Standard: Why Use It and How to Get Started -HTTP Crash Course & Exploration +- [What is HTTP?](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) +- [How HTTPS Works ...in a comic!](https://howhttps.works) +- [An overview of HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) +- [Journey to HTTP/2](https://kamranahmed.info/blog/2016/08/13/http-in-depth) +- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/) +- [HTTP/3 Is Now a Standard: Why Use It and How to Get Started](https://thenewstack.io/http-3-is-now-a-standard-why-use-it-and-how-to-get-started/) +- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0) diff --git a/src/roadmaps/frontend/content/100-internet/102-browsers-and-how-they-work.md b/src/roadmaps/frontend/content/100-internet/102-browsers-and-how-they-work.md index c07b24906..930db7c04 100644 --- a/src/roadmaps/frontend/content/100-internet/102-browsers-and-how-they-work.md +++ b/src/roadmaps/frontend/content/100-internet/102-browsers-and-how-they-work.md @@ -2,8 +2,7 @@ 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 -How Browsers Work -Role of Rendering Engine in Browsers -Populating the Page: How Browsers Work -How Do Web Browsers Work? +- [How Browsers Work](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/) +- [Role of Rendering Engine in Browsers](https://www.browserstack.com/guide/browser-rendering-engine) +- [Populating the Page: How Browsers Work](https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work) +- [How Do Web Browsers Work?](https://www.youtube.com/watch?v=WjDrMKZWCt0) diff --git a/src/roadmaps/frontend/content/100-internet/103-dns-and-how-it-works.md b/src/roadmaps/frontend/content/100-internet/103-dns-and-how-it-works.md index 02e6a6df8..bd1f5b2c3 100644 --- a/src/roadmaps/frontend/content/100-internet/103-dns-and-how-it-works.md +++ b/src/roadmaps/frontend/content/100-internet/103-dns-and-how-it-works.md @@ -2,11 +2,10 @@ 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 -What is DNS? -Mess with DNS - DNS Playground -How DNS works (comic) -DNS and How does it Work? -DNS Records -When to add glue records to DNS settings -DNS Records for Newbies - How To Manage Website Records +- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/) +- [Mess with DNS - DNS Playground](https://messwithdns.net/) +- [How DNS works (comic)](https://howdns.works/) +- [DNS and How does it Work?](https://www.youtube.com/watch?v=Wj0od2ag5sk) +- [DNS Records](https://www.youtube.com/watch?v=7lxgpKh_fRY) +- [When to add glue records to DNS settings](https://www.youtube.com/watch?v=e48AyJOA9W8) +- [DNS Records for Newbies - How To Manage Website Records](https://www.youtube.com/watch?v=YV5tkQYcvfg) diff --git a/src/roadmaps/frontend/content/100-internet/104-what-is-domain-name.md b/src/roadmaps/frontend/content/100-internet/104-what-is-domain-name.md index bf8d23383..b880d4778 100644 --- a/src/roadmaps/frontend/content/100-internet/104-what-is-domain-name.md +++ b/src/roadmaps/frontend/content/100-internet/104-what-is-domain-name.md @@ -2,7 +2,6 @@ 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 Domain Name System (DNS). -Free Content -What is a Domain Name? -What is a Domain Name? | Domain name vs. URL -A Beginners Guide to How Domain Names Work +- [What is a Domain Name?](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name) +- [What is a Domain Name? | Domain name vs. URL](https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/) +- [A Beginners Guide to How Domain Names Work](https://www.youtube.com/watch?v=Y4cRx19nhJk) diff --git a/src/roadmaps/frontend/content/100-internet/105-what-is-hosting.md b/src/roadmaps/frontend/content/100-internet/105-what-is-hosting.md index 7ab9b4f76..a36020ba3 100644 --- a/src/roadmaps/frontend/content/100-internet/105-what-is-hosting.md +++ b/src/roadmaps/frontend/content/100-internet/105-what-is-hosting.md @@ -2,7 +2,6 @@ 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 -What Is Web Hosting? Explained -Different Types of Web Hosting Explained -Where to Host a Fullstack Project on a Budget +- [What Is Web Hosting? Explained](https://www.youtube.com/watch?v=htbY9-yggB0) +- [Different Types of Web Hosting Explained](https://www.youtube.com/watch?v=AXVZYzw8geg) +- [Where to Host a Fullstack Project on a Budget](https://www.youtube.com/watch?v=Kx_1NYYJS7Q) diff --git a/src/roadmaps/frontend/content/100-internet/index.md b/src/roadmaps/frontend/content/100-internet/index.md new file mode 100644 index 000000000..93f7328f2 --- /dev/null +++ b/src/roadmaps/frontend/content/100-internet/index.md @@ -0,0 +1,11 @@ +# Internet + +The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. + +- [The Internet Explained](https://www.vox.com/2014/6/16/18076282/the-internet) +- [How Does the Internet Work?](http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm) +- [Introduction to Internet](/guides/what-is-internet) +- [Learn How the Web Works](https://internetfundamentals.com) +- [How does the Internet work?](https://www.youtube.com/watch?v=x3c1ih2NJEg) +- [How the Internet Works in 5 Minutes](https://www.youtube.com/watch?v=7_LPdttKXPc) + diff --git a/src/roadmaps/frontend/content/100-internet/readme.md b/src/roadmaps/frontend/content/100-internet/readme.md deleted file mode 100644 index 853107e37..000000000 --- a/src/roadmaps/frontend/content/100-internet/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# Internet - -The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. - -Free Content -The Internet Explained -How Does the Internet Work? -Introduction to Internet -Learn How the Web Works -How does the Internet work? -How the Internet Works in 5 Minutes - diff --git a/src/roadmaps/frontend/content/101-html/100-learn-the-basics.md b/src/roadmaps/frontend/content/101-html/100-learn-the-basics.md index 7ce3b9e02..5cc9482d7 100644 --- a/src/roadmaps/frontend/content/101-html/100-learn-the-basics.md +++ b/src/roadmaps/frontend/content/101-html/100-learn-the-basics.md @@ -2,10 +2,9 @@ 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 -W3Schools: Learn HTML -MDN Docs: Getting Started with HTML -HTML Full Course - Build a Website Tutorial -HTML Tutorial for Beginners: HTML Crash Course -HTML Cheatsheet -Scaler: HTML +- [W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp) +- [MDN Docs: Getting Started with HTML ](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started) +- [HTML Full Course - Build a Website Tutorial](https://www.youtube.com/watch?v=pQN-pnXPaVg) +- [HTML Tutorial for Beginners: HTML Crash Course](https://www.youtube.com/watch?v=qz0aGYrrlhU) +- [HTML Cheatsheet](https://htmlcheatsheet.com) +- [Scaler: HTML](https://www.scaler.com/topics/html) diff --git a/src/roadmaps/frontend/content/101-html/101-writing-semantic-html.md b/src/roadmaps/frontend/content/101-html/101-writing-semantic-html.md index c073f1fa2..78689bd19 100644 --- a/src/roadmaps/frontend/content/101-html/101-writing-semantic-html.md +++ b/src/roadmaps/frontend/content/101-html/101-writing-semantic-html.md @@ -2,10 +2,9 @@ Semantic element clearly describes its meaning to both the browser and the developer. In HTML, semantic element are the type of elements that can be used to define different parts of a web page such as `
`, ``, `
`, `
`, `
`, etc. -Free Content -Semantics - MDN Web Docs Glossary: Definitions of Web-related terms | MDN -W3Schools: Semantic HTML -How To Write Semantic HTML -HTML Best Practices – How to Build a Better HTML-Based Website -Semantic HTML: What It Is and How It Improves Your Site -Semantic Markup +- [Semantics - MDN Web Docs Glossary: Definitions of Web-related terms | MDN](https://developer.mozilla.org/en-US/docs/Glossary/Semantics) +- [W3Schools: Semantic HTML](https://www.w3schools.com/html/html5_semantic_elements.asp) +- [How To Write Semantic HTML](https://hackernoon.com/how-to-write-semantic-html-dkq3ulo) +- [HTML Best Practices – How to Build a Better HTML-Based Website](https://www.freecodecamp.org/news/html-best-practices/) +- [Semantic HTML: What It Is and How It Improves Your Site](https://blog.hubspot.com/website/semantic-html) +- [Semantic Markup](https://html.com/semantic-markup) diff --git a/src/roadmaps/frontend/content/101-html/102-forms-and-validations.md b/src/roadmaps/frontend/content/101-html/102-forms-and-validations.md index d81258d38..070b229ee 100644 --- a/src/roadmaps/frontend/content/101-html/102-forms-and-validations.md +++ b/src/roadmaps/frontend/content/101-html/102-forms-and-validations.md @@ -2,8 +2,7 @@ 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 -MDN Web Docs: Client-side form validation -Learn Forms by web.dev -W3Schools: JavaScript Form Validation +- [MDN Web Docs: Client-side form validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation) +- [Learn Forms by web.dev](https://web.dev/learn/forms/) +- [W3Schools: JavaScript Form Validation](https://www.w3schools.com/js/js_validation.asp) diff --git a/src/roadmaps/frontend/content/101-html/103-conventions-and-best-practices.md b/src/roadmaps/frontend/content/101-html/103-conventions-and-best-practices.md index 1c2a4bfd1..4c4450ae2 100644 --- a/src/roadmaps/frontend/content/101-html/103-conventions-and-best-practices.md +++ b/src/roadmaps/frontend/content/101-html/103-conventions-and-best-practices.md @@ -2,6 +2,5 @@ Learn to follow the best practices for writing maintainable and scalable HTML documents. -Free Content -HTML Best Practices +- [HTML Best Practices](https://github.com/hail2u/html-best-practices) diff --git a/src/roadmaps/frontend/content/101-html/104-accessibility.md b/src/roadmaps/frontend/content/101-html/104-accessibility.md index fb5c7a763..4dbb8bd15 100644 --- a/src/roadmaps/frontend/content/101-html/104-accessibility.md +++ b/src/roadmaps/frontend/content/101-html/104-accessibility.md @@ -2,12 +2,11 @@ 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 -Developing for Web Accessibility by W3C WAI -Accessibility Tutorial -A Complete Guide To Accessible Front-End Components -Complete Playlist on Accessibility -MDN Accessibility -Accessibility for Developers by Google -Web Accessibility by Udacity -Accessibility as an Essential Part of the Inclusive Developer Experience +- [Developing for Web Accessibility by W3C WAI](https://www.w3.org/WAI/tips/developing/) +- [Accessibility Tutorial](https://www.w3schools.com/accessibility/index.php) +- [A Complete Guide To Accessible Front-End Components](https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/) +- [Complete Playlist on Accessibility](https://youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g) +- [MDN Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility) +- [Accessibility for Developers by Google](https://web.dev/accessibility) +- [Web Accessibility by Udacity](https://www.udacity.com/course/web-accessibility--ud891) +- [Accessibility as an Essential Part of the Inclusive Developer Experience](https://thenewstack.io/accessibility-as-an-essential-part-of-the-inclusive-developer-experience/) diff --git a/src/roadmaps/frontend/content/101-html/105-seo-basics.md b/src/roadmaps/frontend/content/101-html/105-seo-basics.md index 666c6c1cd..0c762a200 100644 --- a/src/roadmaps/frontend/content/101-html/105-seo-basics.md +++ b/src/roadmaps/frontend/content/101-html/105-seo-basics.md @@ -3,11 +3,9 @@ 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 - -Google Search Central — SEO Docs -SEO Guide -8 Must-Know SEO Best Practices For Developers -SEO for Developers -Complete SEO Course for Beginners -SEO Expert Course +- [Google Search Central — SEO Docs](https://developers.google.com/search/docs) +- [SEO Guide](https://github.com/seo/guide) +- [8 Must-Know SEO Best Practices For Developers](https://neilpatel.com/blog/seo-developers/) +- [SEO for Developers](https://medium.com/welldone-software/seo-for-developers-a-quick-overview-5b5b7ce34679) +- [Complete SEO Course for Beginners](https://www.youtube.com/watch?v=xsVTqzratPs) +- [SEO Expert Course](https://www.youtube.com/watch?v=SnxeXZpZkI0) diff --git a/src/roadmaps/frontend/content/101-html/index.md b/src/roadmaps/frontend/content/101-html/index.md new file mode 100644 index 000000000..a9dac17b6 --- /dev/null +++ b/src/roadmaps/frontend/content/101-html/index.md @@ -0,0 +1,13 @@ +# 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. + +- [W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp) +- [htmlreference.io: All HTML elements at a glance](https://htmlreference.io/) +- [HTML For Beginners The Easy Way](https://html.com) +- [Web Development Basics](https://www.internetingishard.com/html-and-css/) +- [Codecademy - Learn HTML](https://www.codecademy.com/learn/learn-html) +- [Interactive HTML Course](https://github.com/denysdovhan/learnyouhtml) +- [HTML Full Course for Beginners | Complete All-in-One Tutorial ](https://youtu.be/mJgBOIoGihA) +- [HTML Full Course - Build a Website Tutorial](https://www.youtube.com/watch?v=pQN-pnXPaVg) +- [HTML Tutorial for Beginners: HTML Crash Course](https://www.youtube.com/watch?v=qz0aGYrrlhU) diff --git a/src/roadmaps/frontend/content/101-html/readme.md b/src/roadmaps/frontend/content/101-html/readme.md deleted file mode 100644 index e2c7a5af0..000000000 --- a/src/roadmaps/frontend/content/101-html/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# 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 -W3Schools: Learn HTML -htmlreference.io: All HTML elements at a glance -HTML For Beginners The Easy Way -Web Development Basics -Codecademy - Learn HTML -Interactive HTML Course -HTML Full Course for Beginners | Complete All-in-One Tutorial -HTML Full Course - Build a Website Tutorial -HTML Tutorial for Beginners: HTML Crash Course diff --git a/src/roadmaps/frontend/content/102-css/100-learn-the-basics.md b/src/roadmaps/frontend/content/102-css/100-learn-the-basics.md index 3fb6b27f2..40d76515f 100644 --- a/src/roadmaps/frontend/content/102-css/100-learn-the-basics.md +++ b/src/roadmaps/frontend/content/102-css/100-learn-the-basics.md @@ -2,10 +2,9 @@ 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 -W3Schools — Learn CSS -freeCodeCamp — Responsive Web Design -Learn to Code HTML & CSS -CSS Crash Course For Absolute Beginners -HTML and CSS Tutorial -CSS Masterclass - Tutorial & Course for Beginners +- [W3Schools — Learn CSS](https://www.w3schools.com/css/) +- [freeCodeCamp — Responsive Web Design](https://www.freecodecamp.org/learn/responsive-web-design/) +- [Learn to Code HTML & CSS](https://learn.shayhowe.com/html-css/building-your-first-web-page/) +- [CSS Crash Course For Absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI) +- [HTML and CSS Tutorial](https://www.youtube.com/watch?v=D-h8L5hgW-w) +- [CSS Masterclass - Tutorial & Course for Beginners](https://www.youtube.com/watch?v=FqmB-Zj2-PA) diff --git a/src/roadmaps/frontend/content/102-css/101-making-layouts.md b/src/roadmaps/frontend/content/102-css/101-making-layouts.md index 3a1d482cd..8814c75ac 100644 --- a/src/roadmaps/frontend/content/102-css/101-making-layouts.md +++ b/src/roadmaps/frontend/content/102-css/101-making-layouts.md @@ -2,16 +2,14 @@ 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 - -Learn and Practice Flexbox -Game for learning CSS Grid -All about Floats -Positioning Types: How Do They Differ? -The Box Model -The CSS Display Property -A Complete Guide to Flexbox -A Complete Guide to Grid -Learn CSS Grid - Course -Learn CSS Grid for free -Get on the Grid at Last with the CSS Grid Layout Module +- [Learn and Practice Flexbox](https://flexboxfroggy.com/) +- [Game for learning CSS Grid](https://cssgridgarden.com/) +- [All about Floats](https://css-tricks.com/all-about-floats/) +- [Positioning Types: How Do They Differ?](https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/) +- [The Box Model](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model) +- [The CSS Display Property](https://www.freecodecamp.org/news/the-css-display-property-display-none-display-table-inline-block-and-more/) +- [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox) +- [A Complete Guide to Grid](https://css-tricks.com/snippets/css/complete-guide-grid) +- [Learn CSS Grid - Course](https://cssgrid.io/) +- [Learn CSS Grid for free](https://scrimba.com/learn/cssgrid) +- [Get on the Grid at Last with the CSS Grid Layout Module](https://thenewstack.io/get-grid-last-css-grid-template-markup/) diff --git a/src/roadmaps/frontend/content/102-css/102-responsive-design-and-media-queries.md b/src/roadmaps/frontend/content/102-css/102-responsive-design-and-media-queries.md index 5d71b1cfb..9df0cef18 100644 --- a/src/roadmaps/frontend/content/102-css/102-responsive-design-and-media-queries.md +++ b/src/roadmaps/frontend/content/102-css/102-responsive-design-and-media-queries.md @@ -2,11 +2,9 @@ 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 - -Responsive Web Design -Learn Responsive Design -The Beginner’s Guide to Responsive Web Design -The guide to responsive web design in 2022 -5 simple tips to making responsive layouts the easy way -Introduction To Responsive Web Design +- [Responsive Web Design](https://www.w3schools.com/css/css_rwd_intro.asp) +- [Learn Responsive Design](https://web.dev/learn/design/) +- [The Beginner’s Guide to Responsive Web Design](https://kinsta.com/blog/responsive-web-design/) +- [The guide to responsive web design in 2022](https://webflow.com/blog/responsive-web-design) +- [5 simple tips to making responsive layouts the easy way](https://www.youtube.com/watch?v=VQraviuwbzU) +- [Introduction To Responsive Web Design](https://www.youtube.com/watch?v=srvUrASNj0s) diff --git a/src/roadmaps/frontend/content/102-css/index.md b/src/roadmaps/frontend/content/102-css/index.md new file mode 100644 index 000000000..b8a6a991e --- /dev/null +++ b/src/roadmaps/frontend/content/102-css/index.md @@ -0,0 +1,20 @@ +# 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. + +- [The Odin Project](https://www.theodinproject.com//) +- [What The Flexbox!](https://flexbox.io/) +- [Learn CSS | Codecademy](https://www.codecademy.com/learn/learn-css) +- [Learn Intermediate CSS | Codecademy](https://www.codecademy.com/learn/learn-intermediate-css) +- [CSS Complete Course](https://youtu.be/n4R2E7O-Ngo) +- [CSS Crash Course For Absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI) +- [HTML and CSS Tutorial](https://www.youtube.com/watch?v=D-h8L5hgW-w) +- [CSS Masterclass - Tutorial & Course for Beginners](https://www.youtube.com/watch?v=FqmB-Zj2-PA) +- [W3Schools — Learn CSS](https://www.w3schools.com/css/) +- [cssreference.io: All CSS properties at a glance](https://cssreference.io/) +- [Web.dev by Google — Learn CSS](https://web.dev/learn/css/) +- [freeCodeCamp — Responsive Web Design](https://www.freecodecamp.org/learn/responsive-web-design/) +- [Learn to Code HTML & CSS](https://learn.shayhowe.com/html-css/building-your-first-web-page/) +- [Joshw Comeaus CSS Hack Blog Posts](https://www.joshwcomeau.com/) +- [100 Days CSS Challenge](https://100dayscss.com) +- [CSS Tutorial | Scaler](https://www.scaler.com/topics/css) diff --git a/src/roadmaps/frontend/content/102-css/readme.md b/src/roadmaps/frontend/content/102-css/readme.md deleted file mode 100644 index 06b860beb..000000000 --- a/src/roadmaps/frontend/content/102-css/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# 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 - -The Odin Project -What The Flexbox! -Learn CSS | Codecademy -Learn Intermediate CSS | Codecademy -CSS Complete Course -CSS Crash Course For Absolute Beginners -HTML and CSS Tutorial -CSS Masterclass - Tutorial & Course for Beginners -W3Schools — Learn CSS -cssreference.io: All CSS properties at a glance -Web.dev by Google — Learn CSS -freeCodeCamp — Responsive Web Design -Learn to Code HTML & CSS -Joshw Comeau's CSS Hack Blog Posts -100 Days CSS Challenge -CSS Tutorial | Scaler diff --git a/src/roadmaps/frontend/content/103-javascript/100-syntax-and-basic-constructs.md b/src/roadmaps/frontend/content/103-javascript/100-syntax-and-basic-constructs.md index f8708aa41..4e9acf290 100644 --- a/src/roadmaps/frontend/content/103-javascript/100-syntax-and-basic-constructs.md +++ b/src/roadmaps/frontend/content/103-javascript/100-syntax-and-basic-constructs.md @@ -2,8 +2,7 @@ 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 -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -JavaScript Crash Course for Beginners -Build a Netflix Landing Page Clone with HTML, CSS & JS +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c?t=2) +- [Build a Netflix Landing Page Clone with HTML, CSS & JS](https://youtu.be/P7t13SGytRk?t=22) diff --git a/src/roadmaps/frontend/content/103-javascript/101-learn-dom-manipulation.md b/src/roadmaps/frontend/content/103-javascript/101-learn-dom-manipulation.md index 3bb9d490a..3fbb6d83a 100644 --- a/src/roadmaps/frontend/content/103-javascript/101-learn-dom-manipulation.md +++ b/src/roadmaps/frontend/content/103-javascript/101-learn-dom-manipulation.md @@ -2,14 +2,13 @@ The Document Object Model (DOM) is a programming interface built for HTML and XML documents. It represents the page that allows programs and scripts to dynamically update the document structure, content, and style. With DOM, we can easily access and manipulate tags, IDs, classes, attributes, etc. -Free Content -DOM Treee -GeeksForGeeks - DOM (Document Object Model) -What is the DOM? -Eloquent JavaScript, 3rd Edition: The Document Object Model -JavaScript HTML DOM -JavaScript DOM -Learn the HTML DOM with Exercises - CodeGuage -What is DOM, Shadow DOM and Virtual DOM? -JavaScript DOM Crash Course +- [DOM Treee](https://javascript.info/dom-nodes) +- [GeeksForGeeks - DOM (Document Object Model)](https://www.geeksforgeeks.org/dom-document-object-model/) +- [What is the DOM?](https://www.freecodecamp.org/news/what-is-the-dom-document-object-model-meaning-in-javascript/) +- [Eloquent JavaScript, 3rd Edition: The Document Object Model](https://eloquentjavascript.net/14_dom.html) +- [JavaScript HTML DOM](https://www.w3schools.com/js/js_htmldom.asp) +- [JavaScript DOM](https://www.javascripttutorial.net/javascript-dom/) +- [Learn the HTML DOM with Exercises - CodeGuage](https://www.codeguage.com/courses/js/html-dom-introduction) +- [What is DOM, Shadow DOM and Virtual DOM?](https://www.youtube.com/watch?v=7Tok22qxPzQ) +- [JavaScript DOM Crash Course](https://www.youtube.com/watch?v=0ik6X4DJKCc) diff --git a/src/roadmaps/frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md b/src/roadmaps/frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md index 729f27762..17409a6bd 100644 --- a/src/roadmaps/frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md +++ b/src/roadmaps/frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md @@ -2,8 +2,7 @@ Ajax is the technique that lets us send and receive the data asynchronously from the servers e.g. updating the user profile or asynchronously fetching the list of searched products without reloading the page. -Free Content -Fetch API MDN Docs -A Simple Guide to JavaScript Fetch API -Introduction to Fetch -JavaScript Fetch API +- [Fetch API MDN Docs](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +- [A Simple Guide to JavaScript Fetch API](https://www.javascripttutorial.net/javascript-fetch-api/) +- [Introduction to Fetch](https://web.dev/introduction-to-fetch/) +- [JavaScript Fetch API](https://www.youtube.com/watch?v=-ZI0ea5O2oA) diff --git a/src/roadmaps/frontend/content/103-javascript/103-es6-and-modular-javascript.md b/src/roadmaps/frontend/content/103-javascript/103-es6-and-modular-javascript.md index 11d8ac27b..9992d0299 100644 --- a/src/roadmaps/frontend/content/103-javascript/103-es6-and-modular-javascript.md +++ b/src/roadmaps/frontend/content/103-javascript/103-es6-and-modular-javascript.md @@ -2,11 +2,10 @@ 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 -ES6 Tutorial -W3Schools: Javascript ES6 -Learn Modern JavaScript in 1 Hour -JavaScript ES6, ES7, ES8 -Build 15 JavaScript Projects - Vanilla JavaScript -Modern JavaScript ES6, ES7 & ES8 -Easy ES6 Goodies for Busy JavaScript Developers +- [ES6 Tutorial](https://www.javascripttutorial.net/es6/) +- [W3Schools: Javascript ES6](https://www.w3schools.com/js/js_es6.asp) +- [Learn Modern JavaScript in 1 Hour](https://www.youtube.com/watch?v=NCwa_xi0Uuc) +- [JavaScript ES6, ES7, ES8](https://www.youtube.com/watch?v=nZ1DMMsyVyI) +- [Build 15 JavaScript Projects - Vanilla JavaScript](https://www.youtube.com/watch?v=3PHXvlpOkf4) +- [Modern JavaScript ES6, ES7 & ES8](https://codeloop.org/learn-modern-javascript-es6-es7-es8) +- [Easy ES6 Goodies for Busy JavaScript Developers](https://thenewstack.io/fat-arrow-points-way-easy-es6-goodies-busy-js-devs/) diff --git a/src/roadmaps/frontend/content/103-javascript/104-concepts.md b/src/roadmaps/frontend/content/103-javascript/104-concepts.md index 12380cd33..b6ef7d6b0 100644 --- a/src/roadmaps/frontend/content/103-javascript/104-concepts.md +++ b/src/roadmaps/frontend/content/103-javascript/104-concepts.md @@ -2,13 +2,12 @@ Learn and understand the concepts such as Hoisting, Event Bubbling, Scope, Prototype, Shadow DOM and strict. -Free Content -JavaScript Hoisting -Event Bubbling and Capturing -Scope in JavaScript -Var, Let and Const — What's the difference? -Inheritance and Prototype Chain -JavaScript Strict Mode -JavaScript Visualized (7 Part Series) -DOM vs Shadow DOM vs Virtual DOM -Demystifying JavaScript Promises \ No newline at end of file +- [JavaScript Hoisting](https://developer.mozilla.org/en-US/docs/Glossary/Hoisting) +- [Event Bubbling and Capturing](https://javascript.info/bubbling-and-capturing) +- [Scope in JavaScript](https://developer.mozilla.org/en-US/docs/Glossary/Scope) +- [Var, Let and Const — Whats the difference?](https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/) +- [Inheritance and Prototype Chain](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain) +- [JavaScript Strict Mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) +- [JavaScript Visualized (7 Part Series)](https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif) +- [DOM vs Shadow DOM vs Virtual DOM](https://www.youtube.com/watch?v=7Tok22qxPzQ) +- [Demystifying JavaScript Promises](https://blog.greenroots.info/series/javascript-promises) \ No newline at end of file diff --git a/src/roadmaps/frontend/content/103-javascript/index.md b/src/roadmaps/frontend/content/103-javascript/index.md new file mode 100644 index 000000000..b861d3b2a --- /dev/null +++ b/src/roadmaps/frontend/content/103-javascript/index.md @@ -0,0 +1,21 @@ + + +# 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. + +- [JavaScript Roadmap](/javascript) +- [W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/) +- [The Modern JavaScript Tutorial](https://javascript.info/) +- [Learn JavaScript: Covered many topics](https://www.javascripttutorial.net/) +- [Eloquent JavaScript textbook](https://eloquentjavascript.net/) +- [You Dont Know JS Yet (book series) ](https://github.com/getify/You-Dont-Know-JS) +- [JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c?t=2) +- [Build a Netflix Landing Page Clone with HTML, CSS & JS](https://youtu.be/P7t13SGytRk?t=22) +- [Build 30 Javascript projects in 30 days](https://javascript30.com/) +- [Learn the basics of JavaScript](https://github.com/workshopper/javascripting) +- [JavaScript for Beginners ](https://www.scaler.com/topics/course/javascript-beginners) diff --git a/src/roadmaps/frontend/content/103-javascript/readme.md b/src/roadmaps/frontend/content/103-javascript/readme.md deleted file mode 100644 index 444252898..000000000 --- a/src/roadmaps/frontend/content/103-javascript/readme.md +++ /dev/null @@ -1,21 +0,0 @@ - - -# 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 -W3Schools – JavaScript Tutorial -The Modern JavaScript Tutorial -Learn JavaScript: Covered many topics -Eloquent JavaScript textbook -You Don't Know JS Yet (book series) -JavaScript Crash Course for Beginners -Build a Netflix Landing Page Clone with HTML, CSS & JS -Build 30 Javascript projects in 30 days -Learn the basics of JavaScript -JavaScript for Beginners diff --git a/src/roadmaps/frontend/content/104-version-control-systems/100-basic-usage-of-git.md b/src/roadmaps/frontend/content/104-version-control-systems/100-basic-usage-of-git.md index 7e9ba969e..e14a59c7f 100644 --- a/src/roadmaps/frontend/content/104-version-control-systems/100-basic-usage-of-git.md +++ b/src/roadmaps/frontend/content/104-version-control-systems/100-basic-usage-of-git.md @@ -2,10 +2,9 @@ [Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. -Free Content -Visual Git Guide -Git and Github full course -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes -Tutorial: Git for Absolutely Everyone +- [Visual Git Guide](https://marklodato.github.io/visual-git-guide/index-en.html) +- [Git and Github full course](https://youtu.be/apGV9Kg7ics) +- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) +- [Tutorial: Git for Absolutely Everyone](https://thenewstack.io/tutorial-git-for-absolutely-everyone/) diff --git a/src/roadmaps/python/content/103-version-control-systems/readme.md b/src/roadmaps/frontend/content/104-version-control-systems/index.md similarity index 54% rename from src/roadmaps/python/content/103-version-control-systems/readme.md rename to src/roadmaps/frontend/content/104-version-control-systems/index.md index d9d2d2bf4..635936e11 100644 --- a/src/roadmaps/python/content/103-version-control-systems/readme.md +++ b/src/roadmaps/frontend/content/104-version-control-systems/index.md @@ -2,7 +2,8 @@ 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 -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes +- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) +- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) +- [Git Documentation](https://git-scm.com/docs) +- [Learn Git by Atlassian](https://www.atlassian.com/git) diff --git a/src/roadmaps/frontend/content/104-version-control-systems/readme.md b/src/roadmaps/frontend/content/104-version-control-systems/readme.md deleted file mode 100644 index 31accb535..000000000 --- a/src/roadmaps/frontend/content/104-version-control-systems/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# 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 -Version Control System Introduction -Git & GitHub Crash Course For Beginners -Learn Git in 20 Minutes -Git Documentation -Learn Git by Atlassian diff --git a/src/roadmaps/frontend/content/105-repo-hosting-services/100-github.md b/src/roadmaps/frontend/content/105-repo-hosting-services/100-github.md index 73a62d8e4..d3ecaf926 100644 --- a/src/roadmaps/frontend/content/105-repo-hosting-services/100-github.md +++ b/src/roadmaps/frontend/content/105-repo-hosting-services/100-github.md @@ -2,11 +2,9 @@ [GitHub](https://github.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features. -Free Content - -GitHub: Quickstart -Learn Github by doing -What is GitHub? -Git vs. GitHub: What's the difference? -Git and GitHub for Beginners -Git and GitHub - CS50 Beyond 2019 +- [GitHub: Quickstart](https://docs.github.com/en/get-started/quickstart/hello-world) +- [Learn Github by doing](https://skills.github.com/) +- [What is GitHub?](https://www.youtube.com/watch?v=w3jLJU7DT5E) +- [Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU) +- [Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk) +- [Git and GitHub - CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I) diff --git a/src/roadmaps/frontend/content/105-repo-hosting-services/101-gitlab.md b/src/roadmaps/frontend/content/105-repo-hosting-services/101-gitlab.md index 7232dfd48..5286d36a5 100644 --- a/src/roadmaps/frontend/content/105-repo-hosting-services/101-gitlab.md +++ b/src/roadmaps/frontend/content/105-repo-hosting-services/101-gitlab.md @@ -2,8 +2,6 @@ [GitLab](https://gitlab.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features. -Free Content - -GitLab Documentation -GitLab Website -Development: Connect git to GitLab for Small Projects +- [GitLab Documentation](https://docs.gitlab.com/) +- [GitLab Website](https://gitlab.com/) +- [Development: Connect git to GitLab for Small Projects](https://thenewstack.io/development-connect-git-to-gitlab-for-small-projects/) diff --git a/src/roadmaps/frontend/content/105-repo-hosting-services/102-bitbucket.md b/src/roadmaps/frontend/content/105-repo-hosting-services/102-bitbucket.md index 2c1074cae..b54fe1503 100644 --- a/src/roadmaps/frontend/content/105-repo-hosting-services/102-bitbucket.md +++ b/src/roadmaps/frontend/content/105-repo-hosting-services/102-bitbucket.md @@ -2,7 +2,5 @@ [BitBucket](https://bitbucket.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features. -Free Content - -How to use BitBucket? -BitBucket Website +- [How to use BitBucket?](https://bitbucket.org/product/guides) +- [BitBucket Website](https://bitbucket.com/) diff --git a/src/roadmaps/frontend/content/105-repo-hosting-services/index.md b/src/roadmaps/frontend/content/105-repo-hosting-services/index.md new file mode 100644 index 000000000..0ae7a7016 --- /dev/null +++ b/src/roadmaps/frontend/content/105-repo-hosting-services/index.md @@ -0,0 +1,7 @@ +# 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. + +- [GitHub: Where the world builds software](https://github.com) +- [GitLab: Iterate faster, innovate together](https://gitlab.com) +- [BitBucket: The Git solution for professional teams](https://bitbucket.com) diff --git a/src/roadmaps/frontend/content/105-repo-hosting-services/readme.md b/src/roadmaps/frontend/content/105-repo-hosting-services/readme.md deleted file mode 100644 index 42eefcc3d..000000000 --- a/src/roadmaps/frontend/content/105-repo-hosting-services/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 -GitHub: Where the world builds software -GitLab: Iterate faster, innovate together -BitBucket: The Git solution for professional teams diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/100-https.md b/src/roadmaps/frontend/content/106-web-security-knowledge/100-https.md index 916c1fab3..c252886f8 100644 --- a/src/roadmaps/frontend/content/106-web-security-knowledge/100-https.md +++ b/src/roadmaps/frontend/content/106-web-security-knowledge/100-https.md @@ -4,10 +4,9 @@ HTTPS is a secure way to send data between a web server and a browser. Hypertext transfer protocol secure (HTTPS) is the secure version of HTTP, which is the primary protocol used to send data between a web browser and a website. HTTPS is encrypted in order to increase security of data transfer. This is particularly important when users transmit sensitive data, such as by logging into a bank account, email service, or health insurance provider -Free Content -What is HTTPS? -Why HTTPS Matters -Enabling HTTPS on Your Servers -How HTTPS works (comic) -SSL, TLS, HTTP, HTTPS Explained -HTTPS — Stories from the field +- [What is HTTPS?](https://www.cloudflare.com/en-gb/learning/ssl/what-is-https/) +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Enabling HTTPS on Your Servers](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https) +- [How HTTPS works (comic)](https://howhttps.works/) +- [SSL, TLS, HTTP, HTTPS Explained](https://www.youtube.com/watch?v=hExRDVZHhig) +- [HTTPS — Stories from the field](https://www.youtube.com/watch?v=GoXgl9r0Kjk) diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/101-content-security-policy.md b/src/roadmaps/frontend/content/106-web-security-knowledge/101-content-security-policy.md index b01265589..1a0f507d3 100644 --- a/src/roadmaps/frontend/content/106-web-security-knowledge/101-content-security-policy.md +++ b/src/roadmaps/frontend/content/106-web-security-knowledge/101-content-security-policy.md @@ -2,7 +2,6 @@ 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 -MDN — Content Security Policy (CSP) -Google Devs — Content Security Policy (CSP) +- [MDN — Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) +- [Google Devs — Content Security Policy (CSP)](https://developers.google.com/web/fundamentals/security/csp) diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/102-cors.md b/src/roadmaps/frontend/content/106-web-security-knowledge/102-cors.md index 1fc8e60d4..f925eb499 100644 --- a/src/roadmaps/frontend/content/106-web-security-knowledge/102-cors.md +++ b/src/roadmaps/frontend/content/106-web-security-knowledge/102-cors.md @@ -2,5 +2,4 @@ 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 -CORS — Cross-Origin Resource Sharing +- [CORS — Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/103-owasp-security-risks.md b/src/roadmaps/frontend/content/106-web-security-knowledge/103-owasp-security-risks.md index ec0b8ae42..fda2ec1d0 100644 --- a/src/roadmaps/frontend/content/106-web-security-knowledge/103-owasp-security-risks.md +++ b/src/roadmaps/frontend/content/106-web-security-knowledge/103-owasp-security-risks.md @@ -2,9 +2,8 @@ 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 -Wikipedia - OWASP -OWASP Web Application Security Testing Checklist -OWASP Top 10 Security Risks -OWASP Cheatsheets -OWASP Top 10: A Guide to the Worst Software Vulnerabilities +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Web Application Security Testing Checklist](https://github.com/0xRadi/OWASP-Web-Checklist) +- [OWASP Top 10 Security Risks](https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) +- [OWASP Top 10: A Guide to the Worst Software Vulnerabilities](https://thenewstack.io/owasp-top-10-a-guide-to-the-worst-software-vulnerabilities/) diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/index.md b/src/roadmaps/frontend/content/106-web-security-knowledge/index.md new file mode 100644 index 000000000..7063fb320 --- /dev/null +++ b/src/roadmaps/frontend/content/106-web-security-knowledge/index.md @@ -0,0 +1,11 @@ +# 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. + +- [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https) +- [Wikipedia - OWASP](https://en.wikipedia.org/wiki/OWASP) +- [OWASP Web Application Security Testing Checklist](https://github.com/0xRadi/OWASP-Web-Checklist) +- [OWASP Top 10 Security Risks](https://sucuri.net/guides/owasp-top-10-security-vulnerabilities-2021/) +- [OWASP Cheatsheets](https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html) +- [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) +- [OWASP ZAP Step-by-Step Tutorial](https://www.youtube.com/playlist?list=PLH8n_ayg-60J9i3nsLybper-DR3zJw6Z5) diff --git a/src/roadmaps/frontend/content/106-web-security-knowledge/readme.md b/src/roadmaps/frontend/content/106-web-security-knowledge/readme.md deleted file mode 100644 index cd81fdf2f..000000000 --- a/src/roadmaps/frontend/content/106-web-security-knowledge/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# 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 -Why HTTPS Matters -Wikipedia - OWASP -OWASP Web Application Security Testing Checklist -OWASP Top 10 Security Risks -OWASP Cheatsheets -Content Security Policy (CSP) -OWASP ZAP Step-by-Step Tutorial diff --git a/src/roadmaps/frontend/content/107-package-managers/100-npm.md b/src/roadmaps/frontend/content/107-package-managers/100-npm.md index f1515664f..1f6829cd5 100644 --- a/src/roadmaps/frontend/content/107-package-managers/100-npm.md +++ b/src/roadmaps/frontend/content/107-package-managers/100-npm.md @@ -2,9 +2,8 @@ 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 -Modern JavaScript for Dinosaurs -An Absolute Beginner's Guide to Using npm -How to NPM -NPM tutorial for Beginners -NPM Crash Course +- [Modern JavaScript for Dinosaurs](https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html) +- [An Absolute Beginners Guide to Using npm](https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/) +- [How to NPM](https://github.com/workshopper/how-to-npm) +- [NPM tutorial for Beginners](https://www.youtube.com/watch?v=2V1UUhBJ62Y) +- [NPM Crash Course](https://www.youtube.com/watch?v=jHDhaSSKmB0) diff --git a/src/roadmaps/frontend/content/107-package-managers/101-yarn.md b/src/roadmaps/frontend/content/107-package-managers/101-yarn.md index dba71b91a..cec5ce48a 100644 --- a/src/roadmaps/frontend/content/107-package-managers/101-yarn.md +++ b/src/roadmaps/frontend/content/107-package-managers/101-yarn.md @@ -2,7 +2,6 @@ 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 -Modern JavaScript for Dinosaurs -Yarn - Getting Started -Yarn Crash Course +- [Modern JavaScript for Dinosaurs](https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html) +- [Yarn - Getting Started](https://yarnpkg.com/en/docs/getting-started) +- [Yarn Crash Course](https://www.youtube.com/watch?v=g9_6KmiBISk) diff --git a/src/roadmaps/frontend/content/107-package-managers/102-pnpm.md b/src/roadmaps/frontend/content/107-package-managers/102-pnpm.md index 63c6b2486..4daaf62ea 100644 --- a/src/roadmaps/frontend/content/107-package-managers/102-pnpm.md +++ b/src/roadmaps/frontend/content/107-package-managers/102-pnpm.md @@ -2,6 +2,5 @@ PNPM is an alternative package manager for Node. js which stands for “Performant NPM”. The main purpose of PNPM is to hold all the packages at a global (centralized) store and use them if needed by other projects too by creating hard links to it. -Free Content -Official Website -Meet PNPM: The Faster, More Performant NPM +- [Official Website](https://pnpm.io) +- [Meet PNPM: The Faster, More Performant NPM](https://blog.bitsrc.io/pnpm-javascript-package-manager-4b5abd59dc9) diff --git a/src/roadmaps/frontend/content/107-package-managers/index.md b/src/roadmaps/frontend/content/107-package-managers/index.md new file mode 100644 index 000000000..31d284e16 --- /dev/null +++ b/src/roadmaps/frontend/content/107-package-managers/index.md @@ -0,0 +1,12 @@ +# 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. + +- [Modern JavaScript for Dinosaurs](https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html) +- [An Absolute Beginners Guide to Using npm](https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/) +- [Yarn - Getting Started](https://yarnpkg.com/en/docs/getting-started) +- [NPM tutorial for Beginners](https://www.youtube.com/watch?v=2V1UUhBJ62Y) +- [NPM Crash Course](https://www.youtube.com/watch?v=jHDhaSSKmB0) +- [Yarn Crash Course](https://www.youtube.com/watch?v=g9_6KmiBISk) + + diff --git a/src/roadmaps/frontend/content/107-package-managers/readme.md b/src/roadmaps/frontend/content/107-package-managers/readme.md deleted file mode 100644 index b4ba8c733..000000000 --- a/src/roadmaps/frontend/content/107-package-managers/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# 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 -Modern JavaScript for Dinosaurs -An Absolute Beginner's Guide to Using npm -Yarn - Getting Started -NPM tutorial for Beginners -NPM Crash Course -Yarn Crash Course - - diff --git a/src/roadmaps/frontend/content/108-css-architecture/100-bem.md b/src/roadmaps/frontend/content/108-css-architecture/100-bem.md index d546122bb..113c89ae9 100644 --- a/src/roadmaps/frontend/content/108-css-architecture/100-bem.md +++ b/src/roadmaps/frontend/content/108-css-architecture/100-bem.md @@ -2,8 +2,7 @@ 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 -BEM Official Website -BEM Documentation -BEM 101 -BEM Tutorials +- [BEM Official Website](https://en.bem.info) +- [BEM Documentation](https://en.bem.info/methodology/quick-start) +- [BEM 101](https://css-tricks.com/bem-101) +- [BEM Tutorials](https://en.bem.info/tutorials/) diff --git a/src/roadmaps/frontend/content/108-css-architecture/101-oocss.md b/src/roadmaps/frontend/content/108-css-architecture/101-oocss.md index fa240338b..cd6fc669b 100644 --- a/src/roadmaps/frontend/content/108-css-architecture/101-oocss.md +++ b/src/roadmaps/frontend/content/108-css-architecture/101-oocss.md @@ -2,6 +2,5 @@ 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 -OOCSS Official Website -Introduction to Object Oriented CSS +- [OOCSS Official Website](http://oocss.org/) +- [Introduction to Object Oriented CSS](https://www.smashingmagazine.com/2011/12/an-introduction-to-object-oriented-css-oocss/) diff --git a/src/roadmaps/frontend/content/108-css-architecture/102-smacss.md b/src/roadmaps/frontend/content/108-css-architecture/102-smacss.md index ca2c502f9..803d9a86f 100644 --- a/src/roadmaps/frontend/content/108-css-architecture/102-smacss.md +++ b/src/roadmaps/frontend/content/108-css-architecture/102-smacss.md @@ -2,5 +2,4 @@ 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 -SMACSS Official Website +- [SMACSS Official Website](http://smacss.com/) diff --git a/src/roadmaps/frontend/content/108-css-architecture/index.md b/src/roadmaps/frontend/content/108-css-architecture/index.md new file mode 100644 index 000000000..17f7e6158 --- /dev/null +++ b/src/roadmaps/frontend/content/108-css-architecture/index.md @@ -0,0 +1,9 @@ +# 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. + +- [A Look at Some CSS Methodologies](https://www.webfx.com/blog/web-design/css-methodologies/) +- [BEM Official Website](https://en.bem.info) +- [OOCSS Official Website](http://oocss.org/) +- [SMACSS Official Website](http://smacss.com/) + diff --git a/src/roadmaps/frontend/content/108-css-architecture/readme.md b/src/roadmaps/frontend/content/108-css-architecture/readme.md deleted file mode 100644 index eb01b49bf..000000000 --- a/src/roadmaps/frontend/content/108-css-architecture/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# 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 -A Look at Some CSS Methodologies -BEM Official Website -OOCSS Official Website -SMACSS Official Website - diff --git a/src/roadmaps/frontend/content/109-css-preprocessors/100-sass.md b/src/roadmaps/frontend/content/109-css-preprocessors/100-sass.md index 5e4026b99..29493cbe7 100644 --- a/src/roadmaps/frontend/content/109-css-preprocessors/100-sass.md +++ b/src/roadmaps/frontend/content/109-css-preprocessors/100-sass.md @@ -2,8 +2,7 @@ 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 -Sass Website -Official Documentation - Sass Tutorial for Beginners - Sass, BEM, & Responsive Design +- [Sass Website](https://sass-lang.com/) +- [Official Documentation](https://sass-lang.com/documentation) +- [ Sass Tutorial for Beginners](https://www.youtube.com/watch?v=_a5j7KoflTs) +- [ Sass, BEM, & Responsive Design](https://www.youtube.com/watch?v=jfMHA8SqUL4) diff --git a/src/roadmaps/frontend/content/109-css-preprocessors/101-postcss.md b/src/roadmaps/frontend/content/109-css-preprocessors/101-postcss.md index 5d1653543..a4443c34e 100644 --- a/src/roadmaps/frontend/content/109-css-preprocessors/101-postcss.md +++ b/src/roadmaps/frontend/content/109-css-preprocessors/101-postcss.md @@ -2,5 +2,4 @@ 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 -Official Website +- [Official Website](https://postcss.org/) diff --git a/src/roadmaps/frontend/content/109-css-preprocessors/102-less.md b/src/roadmaps/frontend/content/109-css-preprocessors/102-less.md index 8f462f999..411122174 100644 --- a/src/roadmaps/frontend/content/109-css-preprocessors/102-less.md +++ b/src/roadmaps/frontend/content/109-css-preprocessors/102-less.md @@ -2,7 +2,6 @@ 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 -Official Website -Official Documentation - Less CSS Pre-Processor Tutorial +- [Official Website](https://lesscss.org/) +- [Official Documentation](https://lesscss.org/usage/) +- [ Less CSS Pre-Processor Tutorial](https://www.youtube.com/watch?v=YD91G8DdUsw) diff --git a/src/roadmaps/frontend/content/109-css-preprocessors/index.md b/src/roadmaps/frontend/content/109-css-preprocessors/index.md new file mode 100644 index 000000000..71982f7c9 --- /dev/null +++ b/src/roadmaps/frontend/content/109-css-preprocessors/index.md @@ -0,0 +1,6 @@ +# 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. + +- [CSS Preprocessors Explained](https://www.freecodecamp.org/news/css-preprocessors/#:~:text=CSS%20Preprocessors%20compile%20the%20code,preprocessor%20were%20not%20in%20place.) +- [Why Use Preprocessors?](https://sherocommerce.com/what-is-a-css-preprocessors-why-use-them/) diff --git a/src/roadmaps/frontend/content/109-css-preprocessors/readme.md b/src/roadmaps/frontend/content/109-css-preprocessors/readme.md deleted file mode 100644 index 689a71c56..000000000 --- a/src/roadmaps/frontend/content/109-css-preprocessors/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# 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 -CSS Preprocessors Explained -Why Use Preprocessors? diff --git a/src/roadmaps/frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md b/src/roadmaps/frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md index 23401920c..a51a6cca6 100644 --- a/src/roadmaps/frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md +++ b/src/roadmaps/frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md @@ -2,7 +2,6 @@ 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 -Introduction to npm scripts -Codevolution: npm scripts +- [Introduction to npm scripts](https://www.geeksforgeeks.org/introduction-to-npm-scripts/) +- [Codevolution: npm scripts](https://www.youtube.com/watch?v=hHt3oVk3XVk) diff --git a/src/roadmaps/frontend/content/110-build-tools/100-task-runners/index.md b/src/roadmaps/frontend/content/110-build-tools/100-task-runners/index.md new file mode 100644 index 000000000..92d645c90 --- /dev/null +++ b/src/roadmaps/frontend/content/110-build-tools/100-task-runners/index.md @@ -0,0 +1,6 @@ +# Task Runners + +Task Runner are tools to simplify certain tedious tasks of development, like automating sass/scss compilation, bundling assets, linting source code, and hot reloading local server. + +- [npm script](https://docs.npmjs.com/cli/v8/using-npm/scripts) +- [yarn script](https://classic.yarnpkg.com/lang/en/docs/cli/run/#toc-yarn-run-script) diff --git a/src/roadmaps/frontend/content/110-build-tools/100-task-runners/readme.md b/src/roadmaps/frontend/content/110-build-tools/100-task-runners/readme.md deleted file mode 100644 index b60a63a75..000000000 --- a/src/roadmaps/frontend/content/110-build-tools/100-task-runners/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Task Runners - -Task Runner are tools to simplify certain tedious tasks of development, like automating sass/scss compilation, bundling assets, linting source code, and hot reloading local server. - -Free Content -npm script -yarn script diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/100-webpack.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/100-webpack.md index 01700d63b..548109d8b 100644 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/100-webpack.md +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/100-webpack.md @@ -2,8 +2,6 @@ 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 - -Webpack Official Website -Webpack Documentation -A Complete Guide to Webpack 5 +- [Webpack Official Website](https://webpack.js.org/) +- [Webpack Documentation](https://webpack.js.org/concepts/) +- [A Complete Guide to Webpack 5](https://www.valentinog.com/blog/webpack) diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md index 60ae8daca..3584a5392 100644 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md @@ -2,6 +2,6 @@ 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. -Esbuild Official Website -Esbuild Documentation -Why are People Obsessed with esbuild? +- [Esbuild Official Website](https://esbuild.github.io/) +- [Esbuild Documentation](https://esbuild.github.io/api/) +- [Why are People Obsessed with esbuild?](https://www.youtube.com/watch?v=9XS_RA6zyyU) diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/102-rollup.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/102-rollup.md index 76969f6d3..9989a002b 100644 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/102-rollup.md +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/102-rollup.md @@ -2,7 +2,5 @@ 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 - -Official Website and Docs -How to Set Up JavaScript Bundling Using Rollup +- [Official Website and Docs](https://rollupjs.org/) +- [How to Set Up JavaScript Bundling Using Rollup](https://www.youtube.com/watch?v=ICYLOZuFMz8) diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/103-parcel.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/103-parcel.md index 4d2da5b95..b8c4b076b 100644 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/103-parcel.md +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/103-parcel.md @@ -2,7 +2,5 @@ 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 Website and Docs -Using Parcel Bundler with React +- [Official Website and Docs](https://parceljs.org/plugin-system/bundler/) +- [Using Parcel Bundler with React](https://www.youtube.com/watch?v=hCxvp3_o0gM) diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/104-vite.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/104-vite.md index 45e317c3f..6f8945ff0 100644 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/104-vite.md +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/104-vite.md @@ -2,7 +2,6 @@ Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects. -Free Content -Vite Website -Vite Documentation -Vite Crash Course +- [Vite Website](https://vitejs.dev) +- [Vite Documentation](https://vitejs.dev/guide) +- [Vite Crash Course](https://youtu.be/LQQ3CR2JTX8) diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/index.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/index.md new file mode 100644 index 000000000..057435248 --- /dev/null +++ b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/index.md @@ -0,0 +1,9 @@ +# Module Bundlers + +A module bundler is a tool that takes pieces of JavaScript and their dependencies and bundles them into a single file, usually for use in the browser. You may have used tools such as Browserify, Webpack, Rollup or one of many others. + +It usually starts with an entry file, and from there it bundles up all of the code needed for that entry file. + +- [Let’s learn how module bundlers work](https://www.freecodecamp.org/news/lets-learn-how-module-bundlers-work-and-then-write-one-ourselves-b2e3fe6c88ae/) +- [Module Bundlers Explained](https://www.youtube.com/watch?v=5IG4UmULyoA) + diff --git a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/readme.md b/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/readme.md deleted file mode 100644 index 38b19c220..000000000 --- a/src/roadmaps/frontend/content/110-build-tools/101-module-bundlers/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module Bundlers - -A module bundler is a tool that takes pieces of JavaScript and their dependencies and bundles them into a single file, usually for use in the browser. You may have used tools such as Browserify, Webpack, Rollup or one of many others. - -It usually starts with an entry file, and from there it bundles up all of the code needed for that entry file. - -Free Content - -Let’s learn how module bundlers work -Module Bundlers Explained - diff --git a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/100-prettier.md b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/100-prettier.md index f6e700634..da3ef322d 100644 --- a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/100-prettier.md +++ b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/100-prettier.md @@ -2,6 +2,5 @@ Prettier is an opinionated code formatter with support for JavaScript, HTML, CSS, YAML, Markdown, GraphQL Schemas. By far the biggest reason for adopting Prettier is to stop all the on-going debates over styles. -Free Content -Prettier Website -Why Prettier +- [Prettier Website](https://prettier.io) +- [Why Prettier](https://prettier.io/docs/en/why-prettier.html) diff --git a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/101-eslint.md b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/101-eslint.md index 9d0818011..f973be4f0 100644 --- a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/101-eslint.md +++ b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/101-eslint.md @@ -2,7 +2,6 @@ With ESLint you can impose the coding standard using a certain set of standalone rules. -Free Content -ESLint Official Website -Introduction to ESLint -ESLint Quickstart - find errors automatically +- [ESLint Official Website](https://eslint.org/) +- [Introduction to ESLint](https://dev.to/shivambmgupta/eslint-what-why-when-how-5f1d) +- [ESLint Quickstart - find errors automatically](https://www.youtube.com/watch?v=qhuFviJn-es) diff --git a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md index 11f2906ca..e03dbd688 100644 --- a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md +++ b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md @@ -3,7 +3,4 @@ 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 -Official Website -Standard JS Tutorial with React, Prettier - +- [Official Website](https://standardjs.com/) diff --git a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/readme.md b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/index.md similarity index 55% rename from src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/readme.md rename to src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/index.md index 3a09fd0ef..529073c84 100644 --- a/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/readme.md +++ b/src/roadmaps/frontend/content/110-build-tools/102-linters-formatters/index.md @@ -2,4 +2,4 @@ A linter is a tool used to analyze code and discover bugs, syntax errors, stylistic inconsistencies, and suspicious constructs. Popular linters for JavaScript include ESLint, JSLint, and JSHint. -What Is a Linter? +- [What Is a Linter?](https://www.testim.io/blog/what-is-a-linter-heres-a-definition-and-quick-start-guide/) diff --git a/src/roadmaps/frontend/content/110-build-tools/index.md b/src/roadmaps/frontend/content/110-build-tools/index.md new file mode 100644 index 000000000..360bdc311 --- /dev/null +++ b/src/roadmaps/frontend/content/110-build-tools/index.md @@ -0,0 +1,9 @@ +# Build Tools + +Task runners automatically execute commands and carry out processes behind the scenes. This helps automate your workflow by performing mundane, repetitive tasks that you would otherwise waste an egregious amount of time repeating yourself. + +Common usages of task runners include numerous development tasks such as: spinning up development servers, compiling code (ex. SCSS to CSS), running linters, serving files up from a local port on your computer, and many more! + +- [webpack is a static module bundler for modern JavaScript applications](https://webpack.js.org/) +- [Vite Next Generation Frontend Tooling](https://vitejs.dev) +- [Parcel is a zero configuration build tool for the web](https://parceljs.org/) diff --git a/src/roadmaps/frontend/content/110-build-tools/readme.md b/src/roadmaps/frontend/content/110-build-tools/readme.md deleted file mode 100644 index bab731b2f..000000000 --- a/src/roadmaps/frontend/content/110-build-tools/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Build Tools - -Task runners automatically execute commands and carry out processes behind the scenes. This helps automate your workflow by performing mundane, repetitive tasks that you would otherwise waste an egregious amount of time repeating yourself. - -Common usages of task runners include numerous development tasks such as: spinning up development servers, compiling code (ex. SCSS to CSS), running linters, serving files up from a local port on your computer, and many more! - -Free Content -webpack is a static module bundler for modern JavaScript applications -Vite Next Generation Frontend Tooling -Parcel is a zero configuration build tool for the web diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/100-redux.md b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/100-redux.md index 673e1ed90..460700494 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/100-redux.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/100-redux.md @@ -2,8 +2,7 @@ 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](https://github.com/reduxjs/redux-devtools). -Free Content -Official Website -Official Getting Started to Redux -Official Tutorial to Learn Redux -Fundamentals of Redux Course from Dan Abramov +- [Official Website](https://redux.js.org/) +- [Official Getting Started to Redux](https://redux.js.org/introduction/getting-started) +- [Official Tutorial to Learn Redux](https://redux.js.org/tutorials/essentials/part-1-overview-concepts) +- [Fundamentals of Redux Course from Dan Abramov](https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/101-mobx.md b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/101-mobx.md index 55e9ca1c2..684329a11 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/101-mobx.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/101-mobx.md @@ -2,7 +2,5 @@ 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 - -MobX Official Website -Intro to MobX Tutorial +- [MobX Official Website](https://mobx.js.org/) +- [Intro to MobX Tutorial](https://www.youtube.com/watch?v=WQQq1QbYlAw) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/102-recoil.md b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/102-recoil.md index 9511c63f5..b8b7205af 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/102-recoil.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/102-recoil.md @@ -2,8 +2,6 @@ Recoil is a new state management library built by the Facebook team that simplifies global state management. -Free Content - -Recoil Official Website -Official Documentation -Learn the basics of Recoil.js +- [Recoil Official Website](https://recoiljs.org/) +- [Official Documentation](https://recoiljs.org/docs/introduction/getting-started) +- [Learn the basics of Recoil.js](https://www.youtube.com/watch?v=BchtCWxs7sA) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/index.md b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/index.md new file mode 100644 index 000000000..ce89f306f --- /dev/null +++ b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/index.md @@ -0,0 +1,18 @@ + + +# 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. + +- [React Roadmap](/react) +- [React Website](https://reactjs.org/) +- [Official Getting Started](https://reactjs.org/tutorial/tutorial.html) +- [Beta React Docs](https://beta.reactjs.org/) +- [The Beginners Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react) +- [React JS Course for Beginners](https://www.youtube.com/watch?v=nTeuhbP7wdE) +- [React Course - Beginners Tutorial for React JavaScript Library [2022]](https://www.youtube.com/watch?v=bMknfKXIFA8) +- [Understanding Reacts UI Rendering Process](https://www.youtube.com/watch?v=i793Qm6kv3U) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/readme.md b/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/readme.md deleted file mode 100644 index 7d764fa1d..000000000 --- a/src/roadmaps/frontend/content/111-pick-a-framework/100-react-js/readme.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# 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 -React Website -Official Getting Started -Beta React Docs -The Beginner's Guide to React -React JS Course for Beginners -React Course - Beginner's Tutorial for React JavaScript Library [2022] -Understanding React's UI Rendering Process diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/100-rxjs.md b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/100-rxjs.md index 525c5b258..837520844 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/100-rxjs.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/100-rxjs.md @@ -2,9 +2,7 @@ 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 - -RxJS Official Website -RxJS Angular Docs -RxJS Crash Course -RxJS Quick Start +- [RxJS Official Website](https://rxjs.dev/guide/overview) +- [RxJS Angular Docs](https://angular.io/guide/rx-library) +- [RxJS Crash Course](https://www.youtube.com/watch?v=PhggNGsSQyg) +- [RxJS Quick Start](https://www.youtube.com/watch?v=2LCo926NFLI) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/101-ngrx.md b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/101-ngrx.md index 3bcb8a5ff..3aa7d685e 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/101-ngrx.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/101-ngrx.md @@ -2,8 +2,6 @@ NgRx is an open source library that provides reactive state management for your Angular applications -Free Content - -Official Documentation -Angular NgRx Redux Quick Start Tutorial -NgRx Course +- [Official Documentation](https://ngrx.io/docs) +- [Angular NgRx Redux Quick Start Tutorial](https://www.youtube.com/watch?v=2LCo926NFLI) +- [NgRx Course](https://www.youtube.com/watch?v=nuHBHD32iw8) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/readme.md b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/index.md similarity index 51% rename from src/roadmaps/frontend/content/111-pick-a-framework/101-angular/readme.md rename to src/roadmaps/frontend/content/111-pick-a-framework/101-angular/index.md index 1fb1159a9..9f8c54174 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/readme.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/101-angular/index.md @@ -8,6 +8,6 @@ Angular is a component based front-end development framework built on TypeScript which includes a collection of well-integrated libraries that include features like routing, forms management, client-server communication, and more. -Free Content -Official - Getting started with Angular -Angular for Beginners Course [Full Front End Tutorial with TypeScript] +- [Angular Roadmap](/angular) +- [Official - Getting started with Angular](https://angular.io/start) +- [Angular for Beginners Course [Full Front End Tutorial with TypeScript]](https://www.youtube.com/watch?v=3qBXWUpoPHo) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/100-pinia.md b/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/100-pinia.md index 7c9d35c16..428655519 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/100-pinia.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/100-pinia.md @@ -2,5 +2,4 @@ Pinia is a store library for Vue.js, and can be used in Vue 2 and Vue 3, with the same API, except in SSR and its installation. It allows state sharing between pages and components around the application. As the documentation says, it is extensible, intuitive (by organization), has devtools support (in Vue.js devtools), inferred typed state even in javascript and more. In Pinia you can access, mutate, replace, use getters that works like computed, use actions, etc. The library is recommended by the official Vue.js documentation. -Free Content -Official Documentation +- [Official Documentation](https://pinia.vuejs.org/) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/index.md b/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/index.md new file mode 100644 index 000000000..62d2ee626 --- /dev/null +++ b/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/index.md @@ -0,0 +1,16 @@ + + +# 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. + +- [Vue Roadmap](/vue) +- [Vue.js Website](https://vuejs.org/) +- [Official Getting Started](https://vuejs.org/v2/guide/) +- [Vue.js Course for Beginners](https://www.youtube.com/watch?v=FXpIoQ_rT_c) +- [Vue.js Crash Course](https://www.youtube.com/watch?v=qZXt1Aom3Cs) +- [Meet Vue.js, the Flexible JavaScript Framework](https://thenewstack.io/meet-vue-js-flexible-javascript-framework/) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/readme.md b/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/readme.md deleted file mode 100644 index 00804ce7d..000000000 --- a/src/roadmaps/frontend/content/111-pick-a-framework/102-vue-js/readme.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# 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 -Vue.js Website -Official Getting Started -Vue.js Course for Beginners -Vue.js Crash Course -Meet Vue.js, the Flexible JavaScript Framework diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/103-svelte.md b/src/roadmaps/frontend/content/111-pick-a-framework/103-svelte.md index 1b7dcd42e..86e437937 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/103-svelte.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/103-svelte.md @@ -2,9 +2,8 @@ Svelte is a javascript framework that unlike Vue and React does not use vertical DOM diffing but instead knows exactly what and where to update when the state changes. It's mainly focused on frontend and building user interfaces. -Free Content -Svelte Website -Svelte Documentation -Svelte Course Playlist for beginners -All About Svelte, the Much-Loved, State-Driven Web Framework -Svelte and the Future of Frontend Development +- [Svelte Website](https://svelte.dev/) +- [Svelte Documentation](https://svelte.dev/docs) +- [Svelte Course Playlist for beginners](https://www.youtube.com/playlist?list=PL4cUxeGkcC9hlbrVO_2QFVqVPhlZmz7tO) +- [All About Svelte, the Much-Loved, State-Driven Web Framework](https://thenewstack.io/all-about-svelte-the-much-loved-state-driven-web-framework/) +- [Svelte and the Future of Frontend Development](https://thenewstack.io/svelte-and-the-future-of-front-end-development/) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/104-solid-js.md b/src/roadmaps/frontend/content/111-pick-a-framework/104-solid-js.md index 1e1f4f88d..f7dc00e5c 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/104-solid-js.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/104-solid-js.md @@ -2,5 +2,5 @@ Solid is a reactive JavaScript toolkit for building user interfaces without a virtual DOM. To ensure that only the relevant code is executed when a state update occurs, it compiles templates down to real DOM nodes once and wraps modifications into fine-grained reactions. -Official Website - SolidJS -SolidJS Tutorial +- [Official Website - SolidJS](https://www.solidjs.com/) +- [SolidJS Tutorial](https://www.solidjs.com/tutorial/introduction_basics) diff --git a/src/roadmaps/frontend/content/111-pick-a-framework/readme.md b/src/roadmaps/frontend/content/111-pick-a-framework/index.md similarity index 56% rename from src/roadmaps/frontend/content/111-pick-a-framework/readme.md rename to src/roadmaps/frontend/content/111-pick-a-framework/index.md index 4afcc16df..5da7324a2 100644 --- a/src/roadmaps/frontend/content/111-pick-a-framework/readme.md +++ b/src/roadmaps/frontend/content/111-pick-a-framework/index.md @@ -2,6 +2,5 @@ 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 -What is the difference between a framework and a library? - Which JS Framework is best? +- [What is the difference between a framework and a library?](https://www.youtube.com/watch?v=D_MO9vIRBcA) +- [ Which JS Framework is best?](https://www.youtube.com/watch?v=cuHDQhDhvPE) diff --git a/src/roadmaps/frontend/content/112-modern-css/100-styled-components.md b/src/roadmaps/frontend/content/112-modern-css/100-styled-components.md index 3b97bfd7a..25c0d746b 100644 --- a/src/roadmaps/frontend/content/112-modern-css/100-styled-components.md +++ b/src/roadmaps/frontend/content/112-modern-css/100-styled-components.md @@ -2,8 +2,6 @@ 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 - -Official Website -Official Docs -Styled Components Crash Course & Project +- [Official Website](https://styled-components.com/) +- [Official Docs](https://styled-components.com/docs) +- [Styled Components Crash Course & Project](https://www.youtube.com/watch?v=02zO0hZmwnw) diff --git a/src/roadmaps/frontend/content/112-modern-css/101-css-modules.md b/src/roadmaps/frontend/content/112-modern-css/101-css-modules.md index d46d4d1cd..c05d79aee 100644 --- a/src/roadmaps/frontend/content/112-modern-css/101-css-modules.md +++ b/src/roadmaps/frontend/content/112-modern-css/101-css-modules.md @@ -2,8 +2,7 @@ CSS files in which all class names and animation names are scoped locally by default. -Free Content -Project GitHub Repository -Using CSS Modules In React App -CSS Modules: Why are they great? +- [Project GitHub Repository](https://github.com/css-modules/css-modules) +- [Using CSS Modules In React App](https://medium.com/@ralph1786/using-css-modules-in-react-app-c2079eadbb87) +- [CSS Modules: Why are they great?](https://www.youtube.com/watch?v=pKMWU9OrA2s) diff --git a/src/roadmaps/frontend/content/112-modern-css/102-styled-jsx.md b/src/roadmaps/frontend/content/112-modern-css/102-styled-jsx.md index 081d031c9..aa1184619 100644 --- a/src/roadmaps/frontend/content/112-modern-css/102-styled-jsx.md +++ b/src/roadmaps/frontend/content/112-modern-css/102-styled-jsx.md @@ -2,7 +2,5 @@ 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 - -Getting started -Styled JSX in Next.js: Master Next.js +- [Getting started](https://github.com/vercel/styled-jsx) +- [Styled JSX in Next.js: Master Next.js](https://www.youtube.com/watch?v=SM5uVbfgfdo) diff --git a/src/roadmaps/frontend/content/112-modern-css/103-emotion.md b/src/roadmaps/frontend/content/112-modern-css/103-emotion.md index 2fc83abfb..5e899669e 100644 --- a/src/roadmaps/frontend/content/112-modern-css/103-emotion.md +++ b/src/roadmaps/frontend/content/112-modern-css/103-emotion.md @@ -2,7 +2,5 @@ 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 - -Official Website and Docs -Styled components using emotion in React +- [Official Website and Docs](https://emotion.sh/docs/introduction) +- [Styled components using emotion in React](https://www.youtube.com/watch?v=yO3JU2bMLGA) diff --git a/src/roadmaps/frontend/content/112-modern-css/readme.md b/src/roadmaps/frontend/content/112-modern-css/index.md similarity index 100% rename from src/roadmaps/frontend/content/112-modern-css/readme.md rename to src/roadmaps/frontend/content/112-modern-css/index.md diff --git a/src/roadmaps/frontend/content/113-web-components/100-html-templates.md b/src/roadmaps/frontend/content/113-web-components/100-html-templates.md index 23c3306f8..0611c3bc6 100644 --- a/src/roadmaps/frontend/content/113-web-components/100-html-templates.md +++ b/src/roadmaps/frontend/content/113-web-components/100-html-templates.md @@ -2,5 +2,4 @@ The `