1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-01-16 13:51:23 +01:00

refractor: optimize remaining guides

This commit is contained in:
Vedansh 2025-01-15 21:57:08 +05:30 committed by GitHub
parent d4c33930b5
commit 05d36c898e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 14 additions and 15 deletions

View File

@ -178,7 +178,7 @@ The final step in becoming a front-end developer is to build an online portfolio
- Open source contributions code.
- Code examples to demonstrate your problem-solving skills.
Once you've built a solid portfolio, it's time to apply for a front-end developer job. This process includes writing a cover letter and resume and preparing for interviews. This roadmap.sh guide will help you prepare for these interviews: [Top](https://roadmap.sh/questions/frontend) [Front End Developer Interview Questions](https://roadmap.sh/questions/frontend).
Once you've built a solid portfolio, it's time to apply for a front-end developer job. This process includes writing a cover letter and resume and preparing for interviews. This roadmap.sh guide will help you prepare for these interviews: [Top Front End Developer Interview Questions](https://roadmap.sh/questions/frontend).
But remember, front-end development is a continuous learning process. So, it's essential to keep learning during and after a job search to keep up with new tools and trends.
@ -238,6 +238,7 @@ It involves several steps, like:
- Animated dropdown menus for easy-to-use web navigation.
## Frequently asked questions (FAQ): Becoming a front-end developer
![Frequently asked questions: Becoming a front-end developer](https://assets.roadmap.sh/guest/frontend-developer-faqs-zhhns.jpeg)
The process of becoming a front-end developer may pose some questions to you. The following are some answers to common questions to get you started:
@ -305,4 +306,4 @@ Though it is not required, having a grasp of the basics of backend development c
To become a front-end developer, you need a mix of skills, dedication, and the right guidance. If you follow the steps in this guide, you'll be on track to kickstart an excellent front-end career. Stay on track with a personalized learning plan available on roadmap.sh.
roadmap.sh will keep you focused and help you reach your maximum potential as a front-end developer. It has numerous resources that will help you learn front-end and web development. To get started, sign up, create a [front-end roadmap plan](https://roadmap.sh/frontend), and begin studying. You can also share the roadmap with your study buddies.
roadmap.sh will keep you focused and help you reach your maximum potential as a front-end developer. It has numerous resources that will help you learn front-end and web development. To get started, sign up, create a [front-end roadmap plan](https://roadmap.sh/frontend), and begin studying. You can also share the roadmap with your study buddies.

View File

@ -19,7 +19,7 @@ tags:
Given below is the demonstration of a sample production environment for a web application that consists of two different components, application server and database server.
![](https://i.imgur.com/nBJDuVO.png)
![Private Network](https://i.imgur.com/nBJDuVO.png)
Application server has both a public and private IP address. It is accessible from the internet. Database server has only a private IP address and is accessible only from the application server.
@ -39,7 +39,6 @@ For example, you might have this infrastructure on AWS, where you have a custom
Let's say that the application server is in the public subnet and the database server is in the private subnet.
> If you want to learn more about AWS VPC, check out this [detailed guide about AWS VPC](https://cs.fyi/guide/up-and-running-with-aws-vpc), Subnets and everything else you need to know about AWS VPC.
> Also, have a look at [this guide on AWS EC2 instances](https://cs.fyi/guide/up-and-running-with-aws-ec2) which covers all the important concepts about EC2 instances and how to launch them.
We can easily SSH into the application server from the internet i.e.

View File

@ -17,9 +17,9 @@ tags:
- 'guide-sitemap'
---
Our last guide was about the [basics of authentication](/guides/basics-of-authentication), where we discussed authentication, authorization, types of authentication, authentication factors, authentication strategies, and so on.
Our last guide was about the [basics of authentication](https://roadmap.sh/guides/basics-of-authentication), where we discussed authentication, authorization, types of authentication, authentication factors, authentication strategies, and so on.
In this guide today, we will be learning about basic authentication, and we will see how we can implement Basic Authentication in Node.js. We have a [visual guide on the basic authentication](/guides/basic-authentication) and an illustrative video, watch the video below or continue reading:
In this guide today, we will be learning about basic authentication, and we will see how we can implement Basic Authentication in Node.js. We have a [visual guide on the basic authentication](https://roadmap.sh/guides/basic-authentication) and an illustrative video, watch the video below or continue reading:
<iframe class="w-full aspect-video mb-5" src="https://www.youtube.com/embed/mwccHwUn7Gc" title="HTTP Basic Authentication"></iframe>

View File

@ -25,7 +25,6 @@ LLM stands for "Large Language Model." These are advanced AI systems designed to
[![LLMS Visualized](https://roadmap.sh/guides/llms.png)](https://x.com/kamrify/status/1658271217189634049)
OpenAI has been a major contributor to this space in the past few years with their models and research. However, there are other players in the market as well e.g. Meta with their [OPT](https://huggingface.co/facebook/opt-66b), [OPT-IML](https://huggingface.co/facebook/opt-iml-30b) and [LLaMA](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) models, Google released [FLAN-T5](https://huggingface.co/google/flan-t5-xxl) and [BERT](https://huggingface.co/google-bert/bert-base-uncased), [StableLM](https://github.com/stability-AI/stableLM/) by Stability AI, [Alpaca](https://crfm.stanford.edu/2023/03/13/alpaca.html) at Stanford and there are many [other opensource models as well](https://github.com/Hannibal046/Awesome-LLM).
## Training an LLM Model

View File

@ -182,7 +182,7 @@ Design patterns are proven approaches to solving specific design challenges and
As the popular saying goes, "a tree cannot make a forest." While it might be tempting to work in isolation and tackle all development tasks alone, it's essential for you to join communities that encourage collaboration, peer learning, and staying updated on the latest developments.
A great community to join is the [r](https://roadmap.sh/discord)[oadmap.sh](https://roadmap.sh/discord) [Discord community](https://roadmap.sh/discord), where you can connect with like-minded individuals who share your passion for development.
A great community to join is the [roadmap.sh](https://roadmap.sh/) [Discord community](https://roadmap.sh/discord), where you can connect with like-minded individuals who share your passion for development.
### Soft skills
@ -192,7 +192,7 @@ In addition to technical expertise, soft skills play a vital role in the develop
Frameworks, libraries, technologies, modes of adoption, and business requirements will continue to evolve. It is important you stay curious, continuously learn, and keep up with the latest developments in the Java ecosystem, which is huge.
While staying informed about changes in the ecosystem can be overwhelming, especially with information from various sources like blogs, online training, bootcamp courses, etc., there's a reliable and regularly updated platform for Java resources: [Java developers](https://roadmap.sh/java) [r](https://roadmap.sh/java)[oadmap.sh](https://roadmap.sh/java).
While staying informed about changes in the ecosystem can be overwhelming, especially with information from various sources like blogs, online training, bootcamp courses, etc., there's a reliable and regularly updated platform for Java resources: [Java Developer Roadmap](https://roadmap.sh/java).
## Javas adoption in the real-world

View File

@ -90,11 +90,11 @@ Once the three-way handshake is completed, the data sharing between the client a
However, some implementations of `HTTP/1.0` tried to overcome this issue by introducing a new header called `Connection: keep-alive` which was meant to tell the server "Hey server, do not close this connection, I need it again". But still, it wasn't that widely supported and the problem still persisted.
Apart from being connectionless, `HTTP` also is a stateless protocol i.e. server doesn't maintain the information about the client and so each of the requests has to have the information necessary for the server to fulfill the request on its own without any association with any old requests. And so this adds fuel to the fire i.e. apart from the large number of connections that the client has to open, it also has to send some redundant data on the wire causing increased bandwidth usage.
Apart from being connection-less, `HTTP` also is a stateless protocol i.e. server doesn't maintain the information about the client and so each of the requests has to have the information necessary for the server to fulfill the request on its own without any association with any old requests. And so this adds fuel to the fire i.e. apart from the large number of connections that the client has to open, it also has to send some redundant data on the wire causing increased bandwidth usage.
### HTTP/1.1 - 1999
After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was released in 1999; which made alot of improvements over its predecessor. The major improvements over `HTTP/1.0` included
After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was released in 1999; which made a lot of improvements over its predecessor. The major improvements over `HTTP/1.0` included
- **New HTTP methods** were added, which introduced `PUT`, `PATCH`, `OPTIONS`, `DELETE`
@ -122,7 +122,7 @@ After merely 3 years of `HTTP/1.0`, the next version i.e. `HTTP/1.1` was release
I am not going to dwell about all the `HTTP/1.1` features in this post as it is a topic in itself and you can already find a lot about it. The one such document that I would recommend you to read is [Key differences between `HTTP/1.0` and HTTP/1.1](https://www.ra.ethz.ch/cdstore/www8/data/2136/pdf/pd1.pdf) and here is the link to [original RFC](https://tools.ietf.org/html/rfc2616) for the overachievers.
`HTTP/1.1` was introduced in 1999 and it had been a standard for many years. Although, it improved alot over its predecessor; with the web changing everyday, it started to show its age. Loading a web page these days is more resource-intensive than it ever was. A simple webpage these days has to open more than 30 connections. Well `HTTP/1.1` has persistent connections, then why so many connections? you say! The reason is, in `HTTP/1.1` it can only have one outstanding connection at any moment of time. `HTTP/1.1` tried to fix this by introducing pipelining but it didn't completely address the issue because of the **head-of-line blocking** where a slow or heavy request may block the requests behind and once a request gets stuck in a pipeline, it will have to wait for the next requests to be fulfilled. To overcome these shortcomings of `HTTP/1.1`, the developers started implementing the workarounds, for example use of spritesheets, encoded images in CSS, single humongous CSS/Javascript files, [domain sharding](https://www.maxcdn.com/one/visual-glossary/domain-sharding-2/) etc.
`HTTP/1.1` was introduced in 1999 and it had been a standard for many years. Although, it improved a lot over its predecessor; with the web changing everyday, it started to show its age. Loading a web page these days is more resource-intensive than it ever was. A simple webpage these days has to open more than 30 connections. Well `HTTP/1.1` has persistent connections, then why so many connections? you say! The reason is, in `HTTP/1.1` it can only have one outstanding connection at any moment of time. `HTTP/1.1` tried to fix this by introducing pipelining but it didn't completely address the issue because of the **head-of-line blocking** where a slow or heavy request may block the requests behind and once a request gets stuck in a pipeline, it will have to wait for the next requests to be fulfilled. To overcome these shortcomings of `HTTP/1.1`, the developers started implementing the workarounds, for example use of spritesheets, encoded images in CSS, single humongous CSS/Javascript files, [domain sharding](https://www.maxcdn.com/one/visual-glossary/domain-sharding-2/) etc.
### SPDY - 2009
@ -171,7 +171,7 @@ Since `HTTP/2` is now a binary protocol and as I said above that it uses frames
#### 3. HPACK Header Compression
It was part of a separate RFC which was specifically aimed at optimizing the sent headers. The essence of it is that when we are constantly accessing the server from a same client there is alot of redundant data that we are sending in the headers over and over, and sometimes there might be cookies increasing the headers size which results in bandwidth usage and increased latency. To overcome this, `HTTP/2` introduced header compression.
It was part of a separate RFC which was specifically aimed at optimizing the sent headers. The essence of it is that when we are constantly accessing the server from a same client there is a lot of redundant data that we are sending in the headers over and over, and sometimes there might be cookies increasing the headers size which results in bandwidth usage and increased latency. To overcome this, `HTTP/2` introduced header compression.
![Header Compression](https://i.imgur.com/3IPWXvR.png)

View File

@ -28,11 +28,11 @@ I'll be using a [Debian ISO](https://cdimage.debian.org/debian-cd/current/amd64/
## Finding peers
Heres a problem: we want to download a file with BitTorrent, but its a peer-to-peer protocol and we have no idea where to find peers to download it from. This is a lot like moving to a new city and trying to make friends—maybe well hit up a local pub or a meetup group! Centralized locations like these are the big idea behind trackers, which are central servers that introduce peers to each other. Theyre just web servers running over HTTP, and you can find Debians at http://bttracker.debian.org:6969/
Heres a problem: we want to download a file with BitTorrent, but its a peer-to-peer protocol and we have no idea where to find peers to download it from. This is a lot like moving to a new city and trying to make friends—maybe well hit up a local pub or a meetup group! Centralized locations like these are the big idea behind trackers, which are central servers that introduce peers to each other. Theyre just web servers running over HTTP, and you can find Debians at `http://bttracker.debian.org:6969/`.
![illustration of a desktop computer and laptop sitting at a pub](/guides/torrent-client/trackers.png)
Of course, these central servers are liable to get raided by the feds if they facilitate peers exchanging illegal content. You may remember reading about trackers like TorrentSpy, Popcorn Time, and KickassTorrents getting seized and shut down. New methods cut out the middleman by making even **peer discovery** a distributed process. We won't be implementing them, but if you're interested, some terms you can research are **DHT**, **PEX**, and **magnet links**.
Of course, these central servers are liable to get raided by the feds if they facilitate peers exchanging illegal content. You may remember reading about trackers like TorrentSpy, Popcorn Time, and Kickass Torrents getting seized and shut down. New methods cut out the middleman by making even **peer discovery** a distributed process. We won't be implementing them, but if you're interested, some terms you can research are **DHT**, **PEX**, and **magnet links**.
### Parsing a .torrent file