commit
8142219aab
18 changed files with 169 additions and 46 deletions
@ -1 +1,9 @@ |
||||
# Traceroute |
||||
# 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` |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://linuxhint.com/run_traceroute_linux/'>How to Run Traceroute in Linux</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/traceroute-command-in-linux-with-examples/'>Traceroute command in Linux with examples</BadgeLink> |
||||
|
@ -1 +1,8 @@ |
||||
# Javascript modules |
||||
# 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. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/modules-intro'>Modules, introduction</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/import-export'>Export and Import</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/modules-dynamic-imports'>Dynamic imports</BadgeLink> |
||||
|
@ -1 +1,6 @@ |
||||
# Garbage collection |
||||
# 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. |
||||
|
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/garbage-collection'>JavaScript Garbage Collection</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management'>Memory Management in JavaScript</BadgeLink> |
||||
|
@ -1 +1,19 @@ |
||||
# Promises |
||||
# 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. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
|
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://nodejs.dev/en/learn/understanding-javascript-promises/'>Understanding Javascript Promises</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise'>Promise Methods</BadgeLink> |
||||
<BadgeLink colorScheme='blue' badgeText='Read' href='https://www.promisejs.org/'>Official Website</BadgeLink> |
||||
<BadgeLink colorScheme='green' badgeText='Read' href='https://www.freecodecamp.org/news/javascript-promises-for-beginners/'>Official Website</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=a_8nrslImo4/'>Asynchronous JavaScript - Promises</BadgeLink> |
||||
|
||||
|
@ -1 +1,9 @@ |
||||
# Process next tick |
||||
# 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. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
|
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://nodejs.dev/en/learn/understanding-processnexttick/'>Understanding Process.NextTick()</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href=https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/'>The Node.js process.nextTick()</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=-niA5XOlCWI'>The process.nextTick Function</BadgeLink> |
||||
|
@ -1 +1,7 @@ |
||||
# Type inference |
||||
# 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 |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.callicoder.com/golang-variables-zero-values-type-inference/#type-inference'>Go Variables: Type Inference</BadgeLink> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://go.dev/tour/basics/14'>Tour of Go: Type Inference</BadgeLink> |
||||
|
@ -1 +1,7 @@ |
||||
# Cobra |
||||
# Cobra |
||||
|
||||
Cobra is a library for creating powerful modern CLI applications. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
<BadgeLink colorScheme='blue' badgeText='GitHub Repository' href='https://github.com/spf13/cobra'>Cobra Github Repo</BadgeLink> |
||||
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://cobra.dev/'>Cobra Website</BadgeLink> |
||||
|
@ -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. |
||||
|
@ -1 +1,8 @@ |
||||
# Gitlab |
||||
# 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. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
|
||||
<BadgeLink badgeText='Official Website' colorScheme='blue' href='https://gitlab.com/'>GitLab Website</BadgeLink> |
||||
<BadgeLink badgeText='Official Documentation' colorScheme='blue' href='https://docs.gitlab.com/'>GitLab Documentation</BadgeLink> |
||||
|
@ -1 +1,13 @@ |
||||
# Bitbucket |
||||
# 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) |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
<BadgeLink colorScheme='blue' badgeText='Bitbucket Website' href='https://bitbucket.org/product'>Bitbucket Website</BadgeLink> |
||||
<BadgeLink colorScheme='blue' badgeText='Read' href='https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket'>A brief overview of Bitbucket</BadgeLink> |
||||
<BadgeLink badgeText='Guide' colorScheme='green' href='https://bitbucket.org/product/guides/basics/bitbucket-interface'>Getting started with Bitbucket</BadgeLink> |
||||
<BadgeLink badgeText='Guide' colorScheme='green' href='https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud'>Using Git with Bitbucket Cloud</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=M44nEyd_5To'>Bitbucket tutorial | How to use Bitbucket Cloud</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=i5T-DB8tb4A'>Bitbucket Tutorial | Bitbucket for Beginners</BadgeLink> |
||||
|
@ -1 +1,13 @@ |
||||
# Github |
||||
# 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. |
||||
|
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
|
||||
<BadgeLink badgeText='Official Website' colorScheme='blue' href='https://github.com'>GitHub Website</BadgeLink> |
||||
<BadgeLink badgeText='Official Documentation' colorScheme='blue' href='https://docs.github.com/en/get-started/quickstart'>GitHub Documentation</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=w3jLJU7DT5E'>What is GitHub?</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=wpISo9TNjfU'>Git vs. GitHub: What's the difference?</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=RGOj5yH7evk'>Git and GitHub for Beginners</BadgeLink> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=eulnSXkhE7I'>Git and GitHub - CS50 Beyond 2019</BadgeLink> |
||||
<BadgeLink badgeText='Course' href='https://ooloo.io/project/github-flow'>How to Use Git in a Professional Dev Team</BadgeLink> |
||||
|
@ -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 |
||||
<ResourceGroupTitle>Free Content</ResourceGroupTitle> |
||||
``` |
||||
|
||||
* Use `BadgeLink` tag for the resource links with below guidelines |
||||
|
||||
```html |
||||
<!-- blue color scheme for the official websites and documentation --> |
||||
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://reactjs.org/'>React Website</BadgeLink> |
||||
|
||||
<!-- green color scheme for the courses --> |
||||
<BadgeLink badgeText='Course' colorScheme='green' href='https://example.com'>The Beginner's Guide to React</BadgeLink> |
||||
|
||||
<!-- no color scheme for the video links --> |
||||
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=i793Qm6kv3U'>Understanding React's UI Rendering Process</BadgeLink> |
||||
|
||||
<!-- yellow color scheme for the blog posts and readable text --> |
||||
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/'>What is DNS?</BadgeLink> |
||||
|
||||
``` |
||||
|
||||
## Guidelines |
||||
|
||||
- <p><strong>Adding everything available out there is not the goal!</strong><br /> |
||||
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.</p> |
||||
- <p><strong>Do not add things you have not evaluated personally!</strong><br /> |
||||
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?</p> |
||||
- <p><strong>One item per Pull Request</strong><br /> |
||||
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.</p> |
||||
- Write meaningful commit messages |
||||
- Look at the existing issues/pull requests before opening new ones |
@ -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 |
||||
|
||||
- <p><strong>Adding everything available out there is not the goal!</strong><br /> |
||||
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.</p> |
||||
- <p><strong>Do not add things you have not evaluated personally!</strong><br /> |
||||
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?</p> |
||||
- <p><strong>One item per Pull Request</strong><br /> |
||||
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.</p> |
||||
- Write meaningful commit messages |
||||
- Look at the existing issues/pull requests before opening new ones |
@ -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). |
Loading…
Reference in new issue