diff --git a/content/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md b/content/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md index ef14a4d6e..43d7c2635 100644 --- a/content/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md +++ b/content/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md @@ -8,3 +8,4 @@ The Internet is a global network of computers connected to each other which comm Introduction to Internet How does the Internet work? How the Internet Works in 5 Minutes +Internet for Dummies diff --git a/content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md b/content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md index 0295e347c..d35cf2aca 100644 --- a/content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md +++ b/content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md @@ -1 +1,9 @@ -# Traceroute \ No newline at end of file +# Traceroute + +`traceroute` command is a command in Linux that prints the route a network packet takes from its source (e.g. your computer) to the destination host (e.g., roadmap.sh). It is quite valuable in investigating slow network connections as it can help us spot the slow leg of the network packet journey through the internet. + +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 diff --git a/content/roadmaps/102-devops/content/106-ci-cd/105-teamcity.md b/content/roadmaps/102-devops/content/106-ci-cd/105-teamcity.md index b0dcc71ea..11938e09f 100644 --- a/content/roadmaps/102-devops/content/106-ci-cd/105-teamcity.md +++ b/content/roadmaps/102-devops/content/106-ci-cd/105-teamcity.md @@ -1,6 +1,6 @@ # TeamCity -Bamboo is a CI/CD service provided by JetBrains. TeamCity can be used as a SaaS offering or self-managed using your own resources. +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 diff --git a/content/roadmaps/106-javascript/content/101-javascript-variables/102-naming-rules.md b/content/roadmaps/106-javascript/content/101-javascript-variables/102-naming-rules.md index 5ea71239c..60fe29cb5 100644 --- a/content/roadmaps/106-javascript/content/101-javascript-variables/102-naming-rules.md +++ b/content/roadmaps/106-javascript/content/101-javascript-variables/102-naming-rules.md @@ -6,5 +6,6 @@ A variable name should accurately identify your variable. When you create good v Understanding Variables in JavaScript Naming JavaScript Variables JavaScript Naming Conventions +Google JavaScript Style Guide diff --git a/content/roadmaps/106-javascript/content/115-javascript-modules/readme.md b/content/roadmaps/106-javascript/content/115-javascript-modules/readme.md index 2d00e995c..936cd807b 100644 --- a/content/roadmaps/106-javascript/content/115-javascript-modules/readme.md +++ b/content/roadmaps/106-javascript/content/115-javascript-modules/readme.md @@ -1 +1,8 @@ -# Javascript modules \ No newline at end of file +# Modules + +Modules encapsulate all sorts of code like functions and variables and expose all this to other files. Generally, we use it to break our code into separate files to make it more maintainable. They were introduced into JavaScript with ECMAScript 6. + +Free Content +Modules, introduction +Export and Import +Dynamic imports diff --git a/content/roadmaps/106-javascript/content/116-javascript-memory-management/101-garbage-collection.md b/content/roadmaps/106-javascript/content/116-javascript-memory-management/101-garbage-collection.md index 2e9dd7ee1..4a41d0419 100644 --- a/content/roadmaps/106-javascript/content/116-javascript-memory-management/101-garbage-collection.md +++ b/content/roadmaps/106-javascript/content/116-javascript-memory-management/101-garbage-collection.md @@ -1 +1,6 @@ -# Garbage collection \ No newline at end of file +# Garbage Collection + +Memory management in JavaScript is performed automatically and invisibly to us. We create primitives, objects, functions… All that takes memory. The main concept of memory management in JavaScript is reachability. + +JavaScript Garbage Collection +Memory Management in JavaScript diff --git a/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/102-promises.md b/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/102-promises.md index 0554eea0f..ad3532265 100644 --- a/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/102-promises.md +++ b/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/102-promises.md @@ -1 +1,19 @@ -# Promises \ No newline at end of file +# Promises + +A promise is commonly defined as a proxy for a value that will eventually become available +Asynchronous functions use promise behind the scens, so understanding how promises work is fundamental to understanding how "async" and "await" works. +Once a promise has been called, it will start in a pending state. This means that the calling function continues executing, while the promise is pending until it resolves, giving the calling function whatever data was being requested. + +Creating a Promise: +The Promise API exposes a Promise constructor, which you initialize using newPromise(). + +Using resolve() and reject(), we can communicate back to the caller what the resulting Promise state was, and what to do with it. + +Free Content + +Understanding Javascript Promises +Promise Methods +Official Website +Official Website +Asynchronous JavaScript - Promises + diff --git a/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/108-process-next-tick.md b/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/108-process-next-tick.md index 6887c7b9b..d6a067b0e 100644 --- a/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/108-process-next-tick.md +++ b/content/roadmaps/107-nodejs/content/104-nodejs-async-programming/108-process-next-tick.md @@ -1 +1,9 @@ -# Process next tick \ No newline at end of file +# process.nextTick() + +Every time the event loop takes a full trip, we call it a tick. When we pass a function to `process.nextTick()`, we instruct the engine to invoke this function at the end of the current operation before the next event loop tick starts. + +Free Content + +Understanding Process.NextTick() +The Node.js process.nextTick() +The process.nextTick Function diff --git a/content/roadmaps/109-golang/content/100-go-basics/111-type-inference.md b/content/roadmaps/109-golang/content/100-go-basics/111-type-inference.md index b38016d0d..51781c07b 100644 --- a/content/roadmaps/109-golang/content/100-go-basics/111-type-inference.md +++ b/content/roadmaps/109-golang/content/100-go-basics/111-type-inference.md @@ -1 +1,7 @@ -# Type inference \ No newline at end of file +# Type Inference + +Type inference gives go the capability to detect the type of a value without being explicitly indicated , hence the posibility to declare variables without providing its type at first + +Free Content +Go Variables: Type Inference +Tour of Go: Type Inference diff --git a/content/roadmaps/109-golang/content/102-go-building-clis/100-cobra.md b/content/roadmaps/109-golang/content/102-go-building-clis/100-cobra.md index 5310c6fa7..c45282bc9 100644 --- a/content/roadmaps/109-golang/content/102-go-building-clis/100-cobra.md +++ b/content/roadmaps/109-golang/content/102-go-building-clis/100-cobra.md @@ -1 +1,7 @@ -# Cobra \ No newline at end of file +# Cobra + +Cobra is a library for creating powerful modern CLI applications. + +Free Content +Cobra Github Repo +Cobra Website diff --git a/content/roadmaps/112-blockchain/content/105-blockchain-security/101-tools/readme.md b/content/roadmaps/112-blockchain/content/105-blockchain-security/101-tools/readme.md index e586796d8..58cbd91e4 100644 --- a/content/roadmaps/112-blockchain/content/105-blockchain-security/101-tools/readme.md +++ b/content/roadmaps/112-blockchain/content/105-blockchain-security/101-tools/readme.md @@ -1,3 +1,3 @@ # Tools -Blockchain and smart contract technology is faily new, therefore, you should expect constant changes in the security landscape, as new bugs and security risks are discovered, and new best practices are developed. Keeping track of this constantly moving landscape proves difficult, so using tools to aid this mission is important. The cost of failing to propertly secure smart contracts can be high, and because change can be difficult, we must make use of these tools. +Blockchain and smart contract technology is faily new, therefore, you should expect constant changes in the security landscape, as new bugs and security risks are discovered, and new best practices are developed. Keeping track of this constantly moving landscape proves difficult, so using tools to aid this mission is important. The cost of failing to property secure smart contracts can be high, and because change can be difficult, we must make use of these tools. diff --git a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/100-gitlab.md b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/100-gitlab.md index 70157a4e6..ed8109bd6 100644 --- a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/100-gitlab.md +++ b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/100-gitlab.md @@ -1 +1,8 @@ -# Gitlab \ No newline at end of file +# GitLab + +GitLab is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features. + +Free Content + +GitLab Website +GitLab Documentation diff --git a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/101-bitbucket.md b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/101-bitbucket.md index 9c781a3b3..e5de098c2 100644 --- a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/101-bitbucket.md +++ b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/101-bitbucket.md @@ -1 +1,13 @@ -# Bitbucket \ No newline at end of file +# Bitbucket + +Bitbucket is a Git based hosting and source code repository service that is Atlassian's alternative to other products like GitHub, GitLab etc + +Bitbucket offers hosting options via Bitbucket Cloud (Atlassian's servers), Bitbucket Server (customer's on-premise) or Bitbucket Data Centre (number of servers in customers on-premise or cloud environment) + +Free Content +Bitbucket 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 diff --git a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/102-github.md b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/102-github.md index 1d347d3e4..789e6e65d 100644 --- a/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/102-github.md +++ b/content/roadmaps/113-qa/content/109-qa-repo-hosting-services/102-github.md @@ -1 +1,13 @@ -# Github \ No newline at end of file +# GitHub + +GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features. + +Free Content + +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 diff --git a/contributing.md b/contributing.md new file mode 100644 index 000000000..971b62408 --- /dev/null +++ b/contributing.md @@ -0,0 +1,63 @@ +# Contribution + +First of all thank you for considering to contribute. Please look at the details below: + +* [New Roadmaps](#new-roadmaps) +* [Existing Roadmaps](#existing-roadmaps) +* [Adding Content](#adding-content) +* [Guidelines](#guidelines) + +## New Roadmaps + +For new roadmaps, submit a roadmap by providing [a textual roadmap similar to this roadmap](https://gist.github.com/kamranahmedse/98758d2c73799b3a6ce17385e4c548a5) in an issue. + +## Existing Roadmaps + +For the existing roadmaps, please follow the details listed for the nature of contribution: + +* **Fixing Typos** — Make your changes in the [roadmap JSON file](https://github.com/kamranahmedse/developer-roadmap/tree/master/public/project) +* **Adding or Removing Nodes** — Please open an issue with your suggestion. + +**Note:** Please note that our goal is not to have the biggest list of items. Our goal is to list items or skills most relevant today. + +## Adding Content + +Adding Content to Nodes — Add your content in [the content directory inside the relevant roadmap](https://github.com/kamranahmedse/developer-roadmap/tree/master/content/roadmaps). + +Please note that the markdown has a specific format. Please follow the sample format for markdown as given here. + +* Title of the file to represent the node item. +* Add a brief summary describing the roadmap node (preferably less than 200 characters) +* Use `ResourceGroupTitle` tag for the resources heading + + ```html + Free Content + ``` + +* Use `BadgeLink` tag for the resource links with below guidelines + + ```html + + React Website + + + The Beginner's Guide to React + + + Understanding React's UI Rendering Process + + + What is DNS? + + ``` + +## Guidelines + +-

Adding everything available out there is not the goal!
+ The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn?! There might be things that are of-course being used today but prioritize the things that are most in demand today, e.g., agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.

+-

Do not add things you have not evaluated personally!
+ Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included. Have you read this book? Can you give a short article?

+-

One item per Pull Request
+ There may be a discussion related to an item you want to add. Adding just a single item per pull request makes it much easier for everyone involved.

+- Write meaningful commit messages +- Look at the existing issues/pull requests before opening new ones diff --git a/contributing/readme.md b/contributing/readme.md deleted file mode 100644 index d7c496ef5..000000000 --- a/contributing/readme.md +++ /dev/null @@ -1,20 +0,0 @@ -## The Goal - -* For the roadmaps, we encourage you to discuss and contribute by adding new roadmaps. For the existing ones, please note that our goal is not to have the biggest list of items. Our goal is to list items or skills most relevant today. -* For the resources, please note that they are *highly opinionated* and *curated*. Your opinion on the value of any resource may not match the opinion of the curator. - -## Contributing - -* [Submitting roadmaps](./roadmap.md) -* [Adding resources](https://github.com/kamranahmedse/developer-roadmap/issues/985) - -## Guidelines - --

Adding everything available out there is not the goal!
- The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn?! There might be things that are of-course being used today but prioritize the things that are most in demand today, e.g., agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.

--

Do not add things you have not evaluated personally!
- Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included. Have you read this book? Can you give a short article?

--

One item per Pull Request
- There may be a discussion related to an item you want to add. Adding just a single item per pull request makes it much easier for everyone involved.

-- Write meaningful commit messages -- Look at the existing issues/pull requests before opening new ones diff --git a/contributing/roadmap.md b/contributing/roadmap.md deleted file mode 100644 index e916950f2..000000000 --- a/contributing/roadmap.md +++ /dev/null @@ -1,11 +0,0 @@ -## New Roadmap - -Please provide a rough textual roadmap with what you have in mind with an issue and we can take it from there. Here is a sample [textual roadmap submission](https://gist.github.com/kamranahmedse/98758d2c73799b3a6ce17385e4c548a5). - -## Existing Roadmaps - -For the existing roadmaps, please follow the details listed for the nature of contribution: - -* **Fixing Typos** — Make your changes in [the roadmap JSON file](/public/project) -* **Adding or Removing Nodes** — Please open an issue with your suggestion. -* **Adding Content to Nodes** — Add your content in [the content directory inside the relevant roadmap](/content/roadmaps). diff --git a/readme.md b/readme.md index 8057a5e16..e83a13538 100644 --- a/readme.md +++ b/readme.md @@ -63,11 +63,11 @@ npm run dev ## Contribution -> Have a look at [contribution docs](./contributing) for how to update any of the roadmaps +> Have a look at [contribution docs](./contributing.md) for how to update any of the roadmaps +- Add content to roadmaps +- Add new roadmaps - Suggest changes to existing roadmaps -- [Add content to roadmaps](https://github.com/kamranahmedse/developer-roadmap/issues/985) -- Write tests - Discuss ideas in issues - Spread the word