Web Development - HTML, CSS & JavaScript
55.7K subscribers
1.89K photos
5 videos
34 files
519 links
Learn to code and become a Web Developer with HTML, CSS, JavaScript , Reactjs, Wordpress, PHP, Mern & Nodejs knowledge

Managed by: @love_data
Download Telegram
โ˜๏ธ ๐Ÿฐ ๐—™๐—ฅ๐—˜๐—˜ ๐—š๐—ผ๐—ผ๐—ด๐—น๐—ฒ ๐—–๐—น๐—ผ๐˜‚๐—ฑ ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ๐˜€ | ๐—•๐˜‚๐—ถ๐—น๐—ฑ ๐—œ๐—ป-๐——๐—ฒ๐—บ๐—ฎ๐—ป๐—ฑ ๐—–๐—น๐—ผ๐˜‚๐—ฑ ๐—ฆ๐—ธ๐—ถ๐—น๐—น๐˜€

Explore these Google Cloud learning resources covering cloud fundamentals, infrastructure, networking, security, data and AI/ML.

๐Ÿ”ฅ 4 Courses to Explore:
1๏ธโƒฃ Cloud Computing Fundamentals
2๏ธโƒฃ Infrastructure in Google Cloud
3๏ธโƒฃ Networking & Security in Google Cloud
4๏ธโƒฃ Data, ML & AI in Google Cloud

๐Ÿ”— ๐—˜๐—ป๐—ฟ๐—ผ๐—น๐—น ๐—™๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜๐Ÿ‘‡:- 

https://pdlink.in/4zrksPn

๐ŸŽฏ Perfect for Students | Freshers | Developers | Cloud & DevOps Aspirants
๐Ÿš€ ๐—”๐—œ & ๐— ๐—ฎ๐—ฐ๐—ต๐—ถ๐—ป๐—ฒ ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป๐—ถ๐—ป๐—ด ๐—™๐—ฅ๐—˜๐—˜ ๐—–๐—ฒ๐—ฟ๐˜๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ

๐Ÿ”ฅ Upgrade your skills and prepare for exciting career opportunities in AI!

โœ… Beginner-friendly course
โœ… Learn AI & Machine Learning fundamentals
โœ… Gain practical, job-ready skills
โœ… Earn a FREE certificate
โœ… Boost your resume and LinkedIn profile
โœ… Ideal for students, freshers and professionals

๐Ÿ”— ๐—˜๐—ป๐—ฟ๐—ผ๐—น๐—น ๐—ณ๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜ ๐Ÿ‘‡:-

https://pdlink.in/4zrkYNg

โšก Limited opportunityโ€”start learning today!
โค1
๐Ÿš€ JavaScript Interview Questions with Answers โ€” Part 8

71. What is fetch()?

fetch() is a modern JavaScript API used to make HTTP requests and communicate with servers.

It returns a Promise.

Example:

fetch("https://api.example.com/users")
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.log(error);
});


Using async/await:

async function getUsers() {
try {
const response = await fetch(
"https://api.example.com/users"
);
const data = await response.json();
console.log(data);
} catch (error) {
console.log(error);
}
}


Interview Tip:

fetch() rejects its Promise for network-level failures, but an HTTP error such as 404 or 500 does not automatically reject it. You should check response.ok.

72. What is AJAX?

AJAX stands for Asynchronous JavaScript and XML.

It is a technique for communicating with a server and updating parts of a webpage without reloading the entire page.

Despite the name, AJAX doesn't require XML. Modern applications commonly exchange JSON.

Example:

A webpage can request:

User data โ†’ Server
โ†“
JSON
โ†“
JavaScript
โ†“
Update webpage


Modern Approach:

Today, fetch() is commonly used instead of the older XMLHttpRequest API.

73. What are Web APIs?

Web APIs are browser-provided interfaces that allow JavaScript to interact with browser features and the environment.

Examples include:

โ€ข fetch()

โ€ข setTimeout()

โ€ข DOM APIs

โ€ข Local Storage

โ€ข Geolocation API

โ€ข Web Workers

โ€ข Clipboard API

Example:

setTimeout(() => {
console.log("Hello");
}, 1000);


The timer functionality is provided by the host environment, such as a browser or Node.js runtime, rather than being part of the JavaScript language itself.

Interview Tip:

Don't confuse JavaScript language features with browser Web APIs.

74. What is setTimeout()?

setTimeout() schedules a function to run after a specified delay.

Example:

setTimeout(() => {
console.log("Hello");
}, 2000);


The callback becomes eligible to run after approximately 2 seconds.

Important:

The delay is not a guarantee that the function executes exactly at that time.

It may execute later if the JavaScript runtime is busy.

75. What is setInterval()?

setInterval() repeatedly schedules a function at approximately specified intervals.

Example:

const interval = setInterval(() => {
console.log("Running...");
}, 1000);


The callback runs approximately every second until the interval is cancelled.

Stop It:

clearInterval(interval);


Common Uses:

โ€ข Timers

โ€ข Polling

โ€ข Repeated UI updates

โ€ข Periodic tasks

76. What is clearTimeout()?

clearTimeout() cancels a timeout that was previously scheduled using setTimeout().

Example:

const timer = setTimeout(() => {
console.log("Hello");
}, 5000);

clearTimeout(timer);


The callback will not execute because the timeout was cancelled before it became eligible to run.

Common Use:

Useful when you need to cancel a scheduled action.

77. What is clearInterval()?

clearInterval() stops an interval created using setInterval().

Example:
let count = 0;

const interval = setInterval(() => {
count++;
console.log(count);
if (count === 5) {
clearInterval(interval);
}
}, 1000);


Output:

1

2

3

4

5

After 5, the interval is stopped.

78. What is callback hell?

Callback hell occurs when multiple asynchronous operations are nested inside one another, making code difficult to read and maintain.

Example:

getUser(user => {
getOrders(user, orders => {
getPayment(orders, payment => {
processPayment(payment, result => {
console.log(result);
});
});
});
});


This creates deeply nested code.

Problems:

โŒ Difficult to read

โŒ Difficult to debug

โŒ Difficult to maintain

โŒ Error handling becomes complicated

79. How do you avoid callback hell?

Several approaches can make asynchronous code cleaner.

1. Use Promises

getUser()
.then(getOrders)
.then(getPayment)
.then(processPayment)
.catch(handleError);


2. Use async/await

async function process() {
try {
const user = await getUser();
const orders = await getOrders(user);
const payment = await getPayment(orders);
await processPayment(payment);
} catch (error) {
console.log(error);
}
}


3. Break large functions into smaller functions

Instead of putting everything into one deeply nested callback, separate responsibilities into reusable functions.

Interview Tip:

For modern JavaScript, Promises and async/await are the most common solutions.

80. What are microtasks and macrotasks?

This is an important advanced JavaScript interview topic.

The JavaScript runtime has different queues for asynchronous work.

Microtasks

Examples include:

โ€ข Promise callbacks

โ€ข queueMicrotask()

โ€ข MutationObserver callbacks in browsers

Macrotasks / Tasks

Common examples include:

โ€ข setTimeout()

โ€ข setInterval()

โ€ข Some browser events

Example:

console.log("Start");

setTimeout(() => {
console.log("Timeout");
}, 0);

Promise.resolve().then(() => {
console.log("Promise");
});

console.log("End");


Output:

Start

End

Promise

Timeout

Why?

After the synchronous code finishes, the runtime processes available microtasks before moving to the next task.

So:

Synchronous code
โ†“
Microtasks
โ†“
Next task / macrotask


โค๏ธ Double Tap For Part 9
โค1
๐Ÿš€ ๐—ช๐—ถ๐—ฝ๐—ฟ๐—ผ ๐—˜๐—น๐—ถ๐˜๐—ฒ ๐—ก๐—ง๐—› & ๐—ง๐˜‚๐—ฟ๐—ฏ๐—ผ ๐—™๐—ฅ๐—˜๐—˜ ๐—œ๐—ป๐˜๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐—ž๐—ถ๐˜ ๐Ÿ’ป๐Ÿ”ฅ

Get access to a FREE interview preparation kit and prepare smarter for your upcoming assessment & interview rounds.

๐Ÿ“š Prepare For:-
โœ… Technical Interview Questions
โœ… Software Engineer Interview Rounds
โœ… Interview Preparation Resources

๐ŸŽฏ Perfect for Students | Freshers | Engineering Graduates | Wipro Aspirants

๐Ÿ”— ๐—š๐—ฒ๐˜ ๐—™๐—ฅ๐—˜๐—˜ ๐—œ๐—ป๐˜๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„ ๐—ž๐—ถ๐˜ ๐Ÿ‘‡:-

https://pdlink.in/4zh9E6g

๐Ÿ”ฅ Start preparing early and improve your chances of cracking the Wipro hiring process!
๐—ฃ๐—ฎ๐˜† ๐—”๐—ณ๐˜๐—ฒ๐—ฟ ๐—ฃ๐—น๐—ฎ๐—ฐ๐—ฒ๐—บ๐—ฒ๐—ป๐˜โ€”๐—•๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ ๐—ฎ ๐—™๐˜‚๐—น๐—น ๐—ฆ๐˜๐—ฎ๐—ฐ๐—ธ ๐——๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ ๐˜„๐—ถ๐˜๐—ต ๐—š๐—ฒ๐—ป๐—”๐—œ๐Ÿ˜

Curriculum designed and taught by alumni from IITs & leading tech companies.

๐Ÿ† Placement Highlights:-

๐Ÿ’ฐ โ‚น41 LPA highest salary
๐Ÿ“ˆ โ‚น7.4 LPA average salary
๐ŸŽ“ 2,000+ students placed
๐Ÿข 500+ partner companies

๐Ÿ”— ๐—”๐—ฝ๐—ฝ๐—น๐˜† ๐—ก๐—ผ๐˜„ ๐Ÿ‘‡:-

https://pdlink.in/3SuUeuD

โšก Take the first step toward your dream tech career today!
๐Ÿš€ JavaScript Interview Questions with Answers โ€” Part 10

91. What is throttling?

Throttling limits how frequently a function can execute within a given time interval.

Even if an event fires many times, the function is allowed to execute at most once during each interval.

Example:

function throttle(callback, delay) {
let lastTime = 0;
return function(...args) {
const now = Date.now();
if (now - lastTime >= delay) {
lastTime = now;
callback.apply(this, args);
}
};
}


Common Uses:

โ€ข Scroll events

โ€ข Mouse movement

โ€ข Window resizing

โ€ข Continuous user interactions

Debounce vs Throttle:

Debounce โ†’ Execute after activity stops

Throttle โ†’ Execute at controlled intervals

92. What is memoization?

Memoization is an optimization technique where the result of a function is cached so that the same calculation doesn't have to be performed again.

Example:

function memoize(fn) {
const cache = new Map();
return function(n) {
if (cache.has(n)) {
return cache.get(n);
}
const result = fn(n);
cache.set(n, result);
return result;
};
}


Example Usage:

function square(n) {
console.log("Calculating...");
return n * n;
}

const memoizedSquare = memoize(square);

console.log(memoizedSquare(5));
console.log(memoizedSquare(5));


The first call performs the calculation.

The second call can use the cached result.

Benefits:

โœ… Faster repeated calculations

โœ… Avoids unnecessary work

Drawback:

โŒ Uses additional memory for cached results.

93. What is currying?

Currying transforms a function that takes multiple arguments into a sequence of functions that each take one argument.

Normal Function:

function add(a, b, c) {
return a + b + c;
}

console.log(add(1, 2, 3));


Curried Function:

function add(a) {
return function(b) {
return function(c) {
return a + b + c;
};
};
}


Usage:

console.log(add(1)(2)(3));


Output:

6


Arrow Function Version:

const add = a => b => c => a + b + c;


Common Uses:

โ€ข Functional programming

โ€ข Creating reusable functions

โ€ข Partial application

โ€ข Configuration-based functions

94. What is prototype inheritance?

JavaScript uses objects as the foundation of its inheritance system.

Objects can access properties and methods through their prototype chain.

Example:

const animal = {
speak() {
console.log("Animal speaks");
}
};

const dog = Object.create(animal);

dog.speak();


Although dog doesn't directly contain speak(), it can access the method through its prototype.

Prototype Chain:

dog

โ†“

animal

โ†“

Object.prototype

โ†“

null

JavaScript searches this chain when a property isn't found directly on the object.

95. What is prototypal inheritance?

Prototypal inheritance is JavaScript's mechanism for allowing one object to inherit behavior from another object through the prototype chain.

Example:

const person = {
greet() {
console.log("Hello");
}
};

const student = Object.create(person);

student.study = function() {
console.log("Studying");
};

student.greet();
student.study();


Here:

student has its own study() method.

greet() comes from its prototype, person.

96. What are classes in JavaScript?

Classes provide a cleaner syntax for creating objects and implementing object-oriented programming patterns.

Classes were introduced in ES6.

Example:
โค2
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}

greet() {
console.log(`Hello, I am ${this.name}`);
}
}

const person = new Person("Deepak", 25);

person.greet();


Output:

Hello, I am Deepak

Important:

JavaScript classes are built on top of JavaScript's prototype-based inheritance.

Classes Support:

โ€ข Constructors

โ€ข Methods

โ€ข Inheritance

โ€ข Getters and setters

โ€ข Static methods

โ€ข Private fields

97. What is garbage collection?

Garbage collection is the automatic process of identifying and reclaiming memory that is no longer reachable or needed by a JavaScript program.

Developers don't normally manually free JavaScript objects.

Example:

let user = {
name: "Deepak"
};

user = null;


If the original object is no longer reachable from the program, it can eventually become eligible for garbage collection.

Important:

Garbage collection timing is determined by the JavaScript engine. You cannot normally force it from standard JavaScript code.

98. How does JavaScript manage memory?

JavaScript automatically manages memory using mechanisms such as:

1. Memory allocation

2. Program execution

3. Garbage collection

Simplified Process:

Create value

โ†“

Memory allocated

โ†“

Program uses value

โ†“

Value becomes unreachable

โ†“

Garbage collector

โ†“

Memory can be reclaimed

What is a Memory Leak?

A memory leak occurs when a program unintentionally keeps references to objects that it no longer needs.

Common Causes:

โ€ข Unremoved event listeners

โ€ข Unnecessary global variables

โ€ข Timers that aren't cleared

โ€ข Large objects retained in closures

โ€ข Growing caches without limits

Example:

const cache = [];

function addData(data) {
cache.push(data);
}


If cache keeps growing indefinitely, it can consume increasing amounts of memory.

99. What are CommonJS and ES Modules?

Both are module systems used in JavaScript applications.

CommonJS

Commonly associated with Node.js and uses require() and module.exports.

// math.js
function add(a, b) {
return a + b;
}

module.exports = { add };


Import:

const { add } = require("./math");


ES Modules

The standardized JavaScript module system uses import and export.

// math.js
export function add(a, b) {
return a + b;
}


Import:

import { add } from "./math.js";


Modern JavaScript development commonly uses ES Modules, while CommonJS remains important when working with existing Node.js projects.

100. What are the latest JavaScript features introduced in ES2025 and beyond?

JavaScript continues to evolve through yearly ECMAScript releases.

For ES2025 (ECMAScript 2025), notable standardized additions include:

๐Ÿ”ฅ Iterator Helpers

Methods such as:

iterator.map(...)

iterator.filter(...)

iterator.take(...)

allow lazy processing of iterator values.

๐Ÿ”ฅ Iterator.from()

Allows an object to be converted into an iterator.

const iterator = Iterator.from([1, 2, 3]);


๐Ÿ”ฅ Set Methods

Modern Set operations include methods such as:

โ€ข union()

โ€ข intersection()

โ€ข difference()

โ€ข symmetricDifference()

Example:

const a = new Set([1, 2, 3]);
const b = new Set([3, 4, 5]);

const result = a.union(b);

console.log(result);
โค2
๐Ÿ”ฅ Regular Expression Improvements

ES2025 also introduced improvements to regular expressions, including support for enhanced Unicode-related matching capabilities.

๐Ÿ”ฅ Promise.try()

Promise.try() provides a convenient way to turn a synchronous function call into a Promise-based operation.

Promise.try(() => {
return someFunction();
});


โš ๏ธ Important Interview Point

JavaScript features are standardized through the ECMAScript specification, and browser/Node.js support can vary by feature and version.

So when discussing "latest JavaScript," distinguish between:

Standardized features

โ†’ Officially included in an ECMAScript release.

Proposed features

โ†’ Still moving through the TC39 proposal process.

Runtime support

โ†’ Whether a particular browser or Node.js version actually supports the feature.

Double Tap โค๏ธ For More
โค2
๐Ÿš€ ๐—™๐—ฅ๐—˜๐—˜ ๐——๐—ฎ๐˜๐—ฎ ๐—”๐—ป๐—ฎ๐—น๐˜†๐˜๐—ถ๐—ฐ๐˜€ ๐—–๐—ฒ๐—ฟ๐˜๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ! ๐Ÿ“Š

Hereโ€™s a great chance to learn valuable skills and earn a FREE Certificate ๐ŸŽ“

โœ… Beginner-friendly
โœ… Learn Data Analytics skills
โœ… Free certification
โœ… Boost your resume & LinkedIn profile
โœ… Great for students & job seekers

๐—˜๐—ป๐—ฟ๐—ผ๐—น๐—น ๐—™๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜๐Ÿ‘‡ :-

https://pdlink.in/4qn5q94

๐Ÿ“Œ Start learning today & upgrade your career!
๐—™๐—ฅ๐—˜๐—˜ ๐—š๐—ฒ๐—ป๐—”๐—œ + ๐—–๐—น๐—ฎ๐˜‚๐—ฑ๐—ฒ ๐—ข๐—ป๐—น๐—ถ๐—ป๐—ฒ ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ๐—ฐ๐—น๐—ฎ๐˜€๐˜€๐Ÿ˜

Learn how to use 25+ powerful AI tools to automate your work, create professional content and save hours every week!

๐ŸŽฏ Perfect For:-
Freelancers โ€ข Working Professionals โ€ข Business Owners โ€ข Self-Employed Individuals

๐Ÿ’ก No technical knowledge or prior experience required!

๐Ÿ”— ๐—ฅ๐—ฒ๐—ด๐—ถ๐˜€๐˜๐—ฒ๐—ฟ ๐—ณ๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜ ๐Ÿ‘‡:-

https://pdlinks.in/ai

โšก Start using AI smarterโ€”limited slots available!
โค3
๐ŸŽ“ ๐€๐œ๐œ๐ž๐ง๐ญ๐ฎ๐ซ๐ž ๐…๐‘๐„๐„ ๐‚๐ž๐ซ๐ญ๐ข๐Ÿ๐ข๐œ๐š๐ญ๐ข๐จ๐ง ๐‚๐จ๐ฎ๐ซ๐ฌ๐ž๐ฌ ๐Ÿ˜

Boost your skills with 100% FREE certification courses from Accenture!

๐Ÿ“š FREE Courses Offered:
1๏ธโƒฃ Data Processing and Visualization
2๏ธโƒฃ Exploratory Data Analysis
3๏ธโƒฃ SQL Fundamentals
4๏ธโƒฃ Python Basics
5๏ธโƒฃ Acquiring Data

๐‹๐ข๐ง๐ค ๐Ÿ‘‡:- 

https://pdlink.in/4yJKnBy

โœ… Learn Online | ๐Ÿ“œ Get Certified
๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜ ๐—ฎ๐—ป๐—ฑ ๐—Ÿ๐—ถ๐—ป๐—ธ๐—ฒ๐—ฑ๐—œ๐—ป ๐—™๐—ฅ๐—˜๐—˜ ๐—–๐—ฒ๐—ฟ๐˜๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐˜€๐ŸŽ“

Want to strengthen your resume with career-focused professional skills? Explore these free learning paths from Microsoft and LinkedIn.

๐Ÿ”ฅ Courses Available:
๐Ÿ“Œ Project Management
๐Ÿ“Š Business Analysis
๐Ÿ’ป System Administration
๐Ÿ“ˆ Data Analysis

๐Ÿ”— ๐—˜๐—ป๐—ฟ๐—ผ๐—น๐—น ๐—ณ๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜ ๐Ÿ‘‡:-

https://pdlinks.in/micrlink

๐Ÿ’ก Learn โ†’ Get Certified โ†’ Upgrade Your Resume โ†’ Boost Your Career
๐—š๐—ผ๐—ผ๐—ด๐—น๐—ฒ ๐—™๐—ฅ๐—˜๐—˜ ๐—”๐—œ & ๐— ๐—ฎ๐—ฐ๐—ต๐—ถ๐—ป๐—ฒ ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป๐—ถ๐—ป๐—ด ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ๐˜€ ๐Ÿš€

Explore Google Cloud learning resources covering AI/ML fundamentals through practical and advanced concepts.

๐Ÿš€ Learn AI โ†’ Practice ML โ†’ Build Skills โ†’ Become Career Ready

๐Ÿ”— ๐—˜๐—ป๐—ฟ๐—ผ๐—น๐—น ๐—ณ๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜ ๐Ÿ‘‡:-

https://pdlinks.in/eb6

๐Ÿš€ Learn AI โ†’ Practice ML โ†’ Build Skills โ†’ Become Career Ready
Free Resources to Learn Each Tech Stack ๐Ÿง โœจ

No excuses. Everything you need is free!

1. Frontend Development
โฏ freeCodeCamp.org โ€“ HTML, CSS, JS
โฏ MDN Web Docs โ€“ Best docs for web tech
โฏ Frontend Mentor โ€“ Real-world challenges
โฏ CSS Tricks โ€“ CSS deep dives
โฏ YouTube: Kevin Powell, Web Dev Simplified

โ€”

2. Backend Development
โฏ Node.js Docs
โฏ Django Girls Tutorial
โฏ The Odin Project โ€“ Full Stack
โฏ Spring Boot Guides
โฏ YouTube: Amigoscode, CodeWithHarry (Hindi), Tech With Tim

โ€”

3. Full-Stack Development
โฏ Full Stack Open โ€“ React + Node
โฏ The Odin Project
โฏ CS50 Web โ€“ Harvardโ€™s free course
โฏ YouTube: Traversy Media, Clever Programmer, JavaScript Mastery

โ€”

4. Data Analytics
โฏ Kaggle Learn โ€“ Python, SQL, Viz
โฏ Maven Analytics โ€“ Free Power BI/Tableau projects
โฏ Google Data Analytics Course
โฏ W3Schools SQL
โฏ YouTube: Luke Barousse, Alex The Analyst

โ€”

5. Machine Learning
โฏ Googleโ€™s ML Crash Course
โฏ fast.ai โ€“ Deep learning made easy
โฏ Kaggle Courses โ€“ End-to-end ML
โฏ Coursera โ€“ Andrew Ng
โฏ YouTube: StatQuest, Krish Naik, Codebasics

โ€”

6. DevOps
โฏ KodeKloud โ€“ Docker, K8s, Ansible
โฏ Learn Git Branching
โฏ Katacoda โ€“ Interactive Linux & DevOps
โฏ Roadmap.sh โ€“ What to learn
โฏ YouTube: TechWorld with Nana, Nana Janashia
โค5