1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-08-22 08:53:01 +02:00

chore: update roadmap content json (#8742)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2025-06-07 20:39:04 +06:00
committed by GitHub
parent fda439f0e9
commit e4b475cd78
16 changed files with 550 additions and 384 deletions

View File

@@ -12,6 +12,11 @@
"title": "AI vs Machine Learning",
"url": "https://www.youtube.com/watch?v=4RixMPF4xis",
"type": "video"
},
{
"title": "AI vs Machine Learning vs Deep Learning vs GenAI",
"url": "https://youtu.be/qYNweeDHiyU?si=eRJXjtk8Q-RKQ8Ms",
"type": "video"
}
]
},

View File

@@ -3,11 +3,6 @@
"title": "AI Security Fundamentals",
"description": "This covers the foundational concepts essential for AI Red Teaming, bridging traditional cybersecurity with AI-specific threats. An AI Red Teamer must understand common vulnerabilities in ML models (like evasion or poisoning), security risks in the AI lifecycle (from data collection to deployment), and how AI capabilities can be misused. This knowledge forms the basis for designing effective tests against AI systems.\n\nLearn more from the following resources:",
"links": [
{
"title": "AI Security | Coursera",
"url": "https://www.coursera.org/learn/ai-security",
"type": "course"
},
{
"title": "Building Trustworthy AI: Contending with Data Poisoning",
"url": "https://nisos.com/research/building-trustworthy-ai/",

View File

@@ -496,16 +496,10 @@
}
]
},
"xIvplWfe-uDr9iHjPT1Mx": {
"recycleview@xIvplWfe-uDr9iHjPT1Mx.md": {
"title": "RecycleView",
"description": "RecyclerView is the most commonly used and powerful list management tool in Android development. Witch makes it easy to efficiently display large sets of data. You supply the data and define how each item looks, and the RecyclerView library dynamically creates the elements when they're needed.\n\nAs the name implies, RecyclerView recycles those individual elements. When an item scrolls off the screen, RecyclerView doesn't destroy its view. Instead, RecyclerView reuses the view for new items that have scrolled onscreen. RecyclerView improves performance and your app's responsiveness, and it reduces power consumption.\n\nLearn more from the following resources:",
"links": [
{
"title": "Create Dynamic Lists with RecyclerView",
"url": "https://developer.android.com/develop/ui/views/layout/recyclerview",
"type": "article"
}
]
"description": "",
"links": []
},
"znvZp24L-PcQwkSObtixs": {
"title": "TextView",

File diff suppressed because it is too large Load Diff

View File

@@ -2247,8 +2247,14 @@
},
"K49M_7gSpfJuZaE6WaHxQ": {
"title": "AutoFixture",
"description": "",
"links": []
"description": "AutoFixture is an open-source .NET library designed to minimize the 'Arrange' phase of your unit tests by creating object instances automatically with dummy data. It helps reduce boilerplate code and makes tests easier to maintain.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Quick start to AutoFixture",
"url": "https://autofixture.github.io/docs/quick-start/",
"type": "article"
}
]
},
"QERTjawqCCCkHfR44Ca0s": {
"title": "Bogus",

View File

@@ -2727,6 +2727,11 @@
"title": "DNS and how it works?",
"description": "DNS (Domain Name System) is a hierarchical, decentralized naming system for computers, services, or other resources connected to the Internet or a private network. It translates human-readable domain names (like `www.example.com`) into IP addresses (like 192.0.2.1) that computers use to identify each other. DNS servers distributed worldwide work together to resolve these queries, forming a global directory service. The system uses a tree-like structure with root servers at the top, followed by top-level domain servers (.com, .org, etc.), authoritative name servers for specific domains, and local DNS servers. DNS is crucial for the functioning of the Internet, enabling users to access websites and services using memorable names instead of numerical IP addresses. It also supports email routing, service discovery, and other network protocols.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Everything You Need to Know About DNS",
"url": "https://cs.fyi/guide/everything-you-need-to-know-about-dns",
"type": "article"
},
{
"title": "What is DNS?",
"url": "https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/",

View File

@@ -178,13 +178,35 @@
},
"sgfqb22sdN4VRJYkhAVaf": {
"title": "Function Overloading",
"description": "",
"links": []
"description": "Function overloading in C++ allows multiple functions to share the same name, provided they differ in the number or types of parameters. This facilitates compile-time polymorphism, enhancing code readability and maintainability by enabling functions to perform similar operations on different data types or argument counts.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Function Overloading - Microsoft Learn",
"url": "https://learn.microsoft.com/en-us/cpp/cpp/function-overloading",
"type": "article"
},
{
"title": "C++ Function Overloading - W3Schools",
"url": "https://www.w3schools.com/cpp/cpp_function_overloading.asp",
"type": "article"
}
]
},
"llCBeut_uc9IAe2oi4KZ9": {
"title": "Operator Overloading",
"description": "Operators in C++ are symbols that perform various operations on data, such as arithmetic, comparison, and logical operations. They are used to manipulate and evaluate expressions and variables.\n\nHere is a list of the commonly used operator types in C++:\n\n* **Arithmetic Operators**: These are used for performing arithmetic operations like addition, subtraction, multiplication, and division.\n \n * `+`: addition\n \n int sum = 5 + 3; // sum will be 8\n \n \n * `-`: subtraction\n \n int difference = 5 - 3; // difference will be 2\n \n \n * `*`: multiplication\n \n int product = 5 * 3; // product will be 15\n \n \n * `/`: division\n \n int quotient = 15 / 3; // quotient will be 5\n \n \n * `%`: modulo (remainder)\n \n int remainder = 7 % 3; // remainder will be 1\n \n \n* **Comparison (Relational) Operators**: These are used to compare two values and return true or false based on the comparison.\n \n * `==`: equal to\n \n bool isEqual = (5 == 3); // isEqual will be false\n \n \n * `!=`: not equal to\n \n bool isNotEqual = (5 != 3); // isNotEqual will be true\n \n \n * `<`: less than\n \n bool isLess = (5 < 3); // isLess will be false\n \n \n * `>`: greater than\n \n bool isGreater = (5 > 3); // isGreater will be true\n \n \n * `<=`: less than or equal to\n \n bool isLessOrEqual = (5 <= 3); // isLessOrEqual will be false\n \n \n * `>=`: greater than or equal to\n \n bool isGreaterOrEqual = (5 >= 3); // isGreaterOrEqual will be true\n \n \n* **Logical Operators**: These operators are used to perform logical operations such as AND (&&), OR (||), and NOT (!) on boolean values.\n \n * `&&`: logical AND\n \n bool result = (true && false); // result will be false\n \n \n * `||`: logical OR\n \n bool result = (true || false); // result will be true\n \n \n * `!`: logical NOT\n \n bool result = !false; // result will be true\n \n \n* **Assignment Operators**: These are used to assign values to variables.\n \n * `=`: simple assignment\n \n int x = 5; // x gets the value 5\n \n \n * `+=`: addition assignment\n \n int x = 5;\n x += 3; // x gets the value 8 (5 + 3)\n \n \n * `-=`: subtraction assignment\n \n int x = 5;\n x -= 3; // x gets the value 2 (5 - 3)\n \n \n * `*=`: multiplication assignment\n \n int x = 5;\n x *= 3; // x gets the value 15 (5 * 3)\n \n \n * `/=`: division assignment\n \n int x = 15;\n x /= 3; // x gets the value 5 (15 / 3)\n \n \n * `%=`: modulo assignment\n \n int x = 7;\n x %= 3; // x gets the value 1 (7 % 3)\n \n \n\nThese are some of the main operator categories in C++. Each operator allows you to perform specific operations, making your code more efficient and concise.",
"links": []
"description": "Operator overloading in C++ is a feature that allows you to redefine the way operators work for user-defined types (such as classes and structs). It lets you specify how operators like +, -, \\*, ==, etc., behave when applied to objects of your class. Visit the following resources to learn more:\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Operator Overloading - Microsoft Learn",
"url": "https://learn.microsoft.com/en-us/cpp/cpp/operator-overloading",
"type": "article"
},
{
"title": "operator overloading - cppreference.com",
"url": "https://en.cppreference.com/w/cpp/language/operators",
"type": "article"
}
]
},
"xjiFBVe-VGqCqWfkPVGKf": {
"title": "Lambdas",
@@ -469,8 +491,19 @@
},
"DHdNBP7_ixjr6h-dIQ7g6": {
"title": "Standard Library + STL",
"description": "The C++ Standard Template Library (STL) is a collection of header files that provide several data structures, algorithms, and functions to simplify your C++ coding experience. The primary purpose of the STL is to save time and increase efficiency by providing a ready-to-use set of useful tools. The most commonly used features of the STL can be divided into three main categories: containers, algorithms, and iterators.\n\nContainers\n----------\n\nContainers are the data structures used for data storage and manipulation in C++. They are classified into four types: sequence containers, associative containers, unordered associative containers, and container adaptors.\n\n* **Sequence Containers**: These are linear data structures that store elements in a sequential manner. Examples include:\n \n * `std::vector`: A dynamic array that grows and shrinks at runtime.\n \n std::vector<int> my_vector;\n \n \n * `std::list`: A doubly linked list.\n \n std::list<int> my_list;\n \n \n * `std::deque`: A double-ended queue allowing insertion and deletion at both ends.\n \n std::deque<int> my_deque;\n \n \n* **Associative Containers**: These containers store data in a sorted manner with unique keys. Examples include:\n \n * `std::set`: A collection of unique elements sorted by keys.\n \n std::set<int> my_set;\n \n \n * `std::map`: A collection of key-value pairs sorted by keys.\n \n std::map<std::string, int> my_map;\n \n \n* **Unordered Associative Containers**: These containers store data in an unordered manner using hash tables. Examples include:\n \n * `std::unordered_set`: A collection of unique elements in no specific order.\n \n std::unordered_set<int> my_unordered_set;\n \n \n * `std::unordered_map`: A collection of key-value pairs in no specific order.\n \n std::unordered_map<std::string, int> my_unordered_map;\n \n \n* **Container Adaptors**: These are containers based on other existing containers. Examples include:\n \n * `std::stack`: A LIFO data structure based on deque or list.\n \n std::stack<int> my_stack;\n \n \n * `std::queue`: A FIFO data structure based on deque or list.\n \n std::queue<int> my_queue;\n \n \n * `std::priority_queue`: A sorted queue based on vector or deque.\n \n std::priority_queue<int> my_priority_queue;\n \n \n\nAlgorithms\n----------\n\nThe STL provides several generic algorithms that can be used to perform various operations on the data stored in containers. They are divided into five categories: non-modifying sequence algorithms, modifying sequence algorithms, sorting algorithms, sorted range algorithms, and numeric algorithms.\n\nSome examples include `std::find`, `std::replace`, `std::sort`, and `std::binary_search`.\n\nFor example, to sort a vector, you can use the following code:\n\n std::vector<int> my_vec = {4, 2, 5, 1, 3};\n std::sort(my_vec.begin(), my_vec.end());\n \n\nIterators\n---------\n\nIterators are a fundamental concept in the STL, as they provide a unified way to access elements in containers. Iterators can be thought of as an advanced form of pointers.\n\nEach container has its own iterator type, which can be used to traverse elements and modify values. The most common iterator operations are `begin()` and `end()` for getting iterators pointing to the first and one past the last element of a container, respectively.\n\nFor example, to iterate through a vector and print its elements, you can use the following code:\n\n std::vector<int> my_vec = {1, 2, 3, 4, 5};\n for (auto it = my_vec.begin(); it != my_vec.end(); ++it) {\n std::cout << *it << \" \";\n }\n \n\nThis is just a brief overview of the C++ Standard Template Library. There are many other features and functions available in the STL, and familiarizing yourself with them is crucial for efficient C++ programming.",
"links": []
"description": "The C++ Standard Template Library (STL) is a collection of header files that provide several data structures, algorithms, and functions to simplify your C++ coding experience. The primary purpose of the STL is to save time and increase efficiency by providing a ready-to-use set of useful tools. The most commonly used features of the STL can be divided into three main categories: containers, algorithms, and iterators.\n\nContainers\n----------\n\nContainers are the data structures used for data storage and manipulation in C++. They are classified into four types: sequence containers, associative containers, unordered associative containers, and container adaptors.\n\n* **Sequence Containers**: These are linear data structures that store elements in a sequential manner. Examples include:\n \n * `std::vector`: A dynamic array that grows and shrinks at runtime.\n \n std::vector<int> my_vector;\n \n \n * `std::list`: A doubly linked list.\n \n std::list<int> my_list;\n \n \n * `std::deque`: A double-ended queue allowing insertion and deletion at both ends.\n \n std::deque<int> my_deque;\n \n \n* **Associative Containers**: These containers store data in a sorted manner with unique keys. Examples include:\n \n * `std::set`: A collection of unique elements sorted by keys.\n \n std::set<int> my_set;\n \n \n * `std::map`: A collection of key-value pairs sorted by keys.\n \n std::map<std::string, int> my_map;\n \n \n* **Unordered Associative Containers**: These containers store data in an unordered manner using hash tables. Examples include:\n \n * `std::unordered_set`: A collection of unique elements in no specific order.\n \n std::unordered_set<int> my_unordered_set;\n \n \n * `std::unordered_map`: A collection of key-value pairs in no specific order.\n \n std::unordered_map<std::string, int> my_unordered_map;\n \n \n* **Container Adaptors**: These are containers based on other existing containers. Examples include:\n \n * `std::stack`: A LIFO data structure based on deque or list.\n \n std::stack<int> my_stack;\n \n \n * `std::queue`: A FIFO data structure based on deque or list.\n \n std::queue<int> my_queue;\n \n \n * `std::priority_queue`: A sorted queue based on vector or deque.\n \n std::priority_queue<int> my_priority_queue;\n \n \n\nAlgorithms\n----------\n\nThe STL provides several generic algorithms that can be used to perform various operations on the data stored in containers. They are divided into five categories: non-modifying sequence algorithms, modifying sequence algorithms, sorting algorithms, sorted range algorithms, and numeric algorithms.\n\nSome examples include `std::find`, `std::replace`, `std::sort`, and `std::binary_search`.\n\nFor example, to sort a vector, you can use the following code:\n\n std::vector<int> my_vec = {4, 2, 5, 1, 3};\n std::sort(my_vec.begin(), my_vec.end());\n \n\nIterators\n---------\n\nIterators are a fundamental concept in the STL, as they provide a unified way to access elements in containers. Iterators can be thought of as an advanced form of pointers.\n\nEach container has its own iterator type, which can be used to traverse elements and modify values. The most common iterator operations are `begin()` and `end()` for getting iterators pointing to the first and one past the last element of a container, respectively.\n\nFor example, to iterate through a vector and print its elements, you can use the following code:\n\n std::vector<int> my_vec = {1, 2, 3, 4, 5};\n for (auto it = my_vec.begin(); it != my_vec.end(); ++it) {\n std::cout << *it << \" \";\n }\n \n\nThis is just a brief overview of the C++ Standard Template Library. There are many other features and functions available in the STL, and familiarizing yourself with them is crucial for efficient C++ programming.\n\nLearn more from the following resources:",
"links": [
{
"title": "Mastering STL in C++23: New Features, Updates, and Best Practices",
"url": "https://simplifycpp.org/books/Mastering_STL.pdf",
"type": "article"
},
{
"title": "C++ Standard Template Library (STL) Short Overview",
"url": "https://www.youtube.com/watch?v=Id6ZEb_Lg58",
"type": "video"
}
]
},
"Ebu8gzbyyXEeJryeE0SpG": {
"title": "Iterators",
@@ -589,7 +622,7 @@
},
"R2-qWGUxsTOeSHRuUzhd2": {
"title": "C++ 17",
"description": "C++17, also known as C++1z, is the version of the C++ programming language published in December 2017. It builds upon the previous standard, C++14, and adds various new features and enhancements to improve the language's expressiveness, performance, and usability.\n\nKey Features:\n-------------\n\n* If-init-statement: Introduces a new syntax for writing conditions with scope inside if and switch statements.\n\n if (auto it = map.find(key); it != map.end())\n {\n // Use it\n }\n \n\n* Structured Binding Declarations: Simplify the process of unpacking a tuple, pair, or other aggregate types.\n\n map<string, int> data;\n auto [iter, success] = data.emplace(\"example\", 42);\n \n\n* Inline variables: Enables `inline` keyword for variables and allows single definition of global and class static variables in header files.\n\n inline int globalVar = 0;\n \n\n* Folds expressions: Introduce fold expressions for variadic templates.\n\n template <typename... Ts>\n auto sum(Ts... ts)\n {\n return (ts + ...);\n }\n \n\n* constexpr if statement: Allows conditional compilation during compile time.\n\n template <typename T>\n auto get_value(T t)\n {\n if constexpr (std::is_pointer_v<T>)\n {\n return *t;\n }\n else\n {\n return t;\n }\n }\n \n\n* Improved lambda expression: Allows lambda to capture a single object without changing its type or constness.\n\n auto func = [x = std::move(obj)] { /* use x */ };\n \n\n* Standard file system library: `std::filesystem` as a standardized way to manipulate paths, directories, and files.\n \n* New Standard Library additions: `<string_view>` (non-owning string reference), `<any>` (type-safe discrimination union), `<optional>` (optional value wrapper), `<variant>` (type-safe sum type), and `<memory_resource>` (library for polymorphic allocators).\n \n* Parallel Algorithms: Adds support for parallel execution of Standard Library algorithms.\n \n\nThis is a brief summary of the key features of C++17; it includes more features and library updates. For a complete list, you can refer to the [full list of C++17 features and changes](https://en.cppreference.com/w/cpp/17).",
"description": "C++17, also known as C++1z, is the version of the C++ programming language published in December 2017. It builds upon the previous standard, C++14, and adds various new features and enhancements to improve the language's expressiveness, performance, and usability.\n\nKey Features:\n-------------\n\n* If-init-statement: Introduces a new syntax for writing conditions with scope inside if and switch statements.\n\n if (auto it = map.find(key); it != map.end())\n {\n // Use it\n }\n \n\n* Structured Binding Declarations: Simplify the process of unpacking a tuple, pair, or other aggregate types.\n\n map<string, int> data;\n auto [iter, success] = data.emplace(\"example\", 42);\n \n\n* Inline variables: Enables `inline` keyword for variables and allows single definition of global and class static variables in header files.\n\n inline int globalVar = 0;\n \n\n* Folds expressions: Introduce fold expressions for variadic templates.\n\n template <typename... Ts>\n auto sum(Ts... ts)\n {\n return (ts + ...);\n }\n \n\n* constexpr if statement: Allows conditional compilation during compile time.\n\n template <typename T>\n auto get_value(T t)\n {\n if constexpr (std::is_pointer_v<T>)\n {\n return *t;\n }\n else\n {\n return t;\n }\n }\n \n\n* Improved lambda expression: Allows lambda to capture a single object without changing its type or constness.\n\n auto func = [x = std::move(obj)] { /* use x */ };\n \n\n* Standard file system library: `std::filesystem` as a standardized way to manipulate paths, directories, and files.\n \n* New Standard Library additions: `<string_view>` (non-owning string reference), `<any>` (type-erased container), `<optional>` (optional value wrapper), `<variant>` (type-safe discriminated union / sum type), and `<memory_resource>` (library for polymorphic allocators).\n \n* Parallel Algorithms: Adds support for parallel execution of Standard Library algorithms.\n \n\nThis is a brief summary of the key features of C++17; it includes more features and library updates. For a complete list, you can refer to the [full list of C++17 features and changes](https://en.cppreference.com/w/cpp/17).",
"links": []
},
"o3no4a5_iMFzEAGs56-BJ": {

View File

@@ -3804,7 +3804,7 @@
},
"zqRaMmqcLfx400kJ-h0LO": {
"title": "Zero Day",
"description": "A zero-day vulnerability is a software security flaw unknown to the vendor and exploit developers, leaving it unpatched and potentially exploitable. When attackers discover and exploit such a vulnerability before the software creator can develop and release a fix, it's called a zero-day attack. These attacks are particularly dangerous because they take advantage of the window between discovery and patching, during which systems are highly vulnerable. Zero-days are prized in cybercriminal circles and can be used for various malicious purposes, including data theft, system compromise, or as part of larger attack campaigns. Defending against zero-days often requires proactive security measures, as traditional signature-based defenses are ineffective against unknown threats.\n\nLearn more from the following resources:",
"description": "A zero-day vulnerability is a software security flaw unknown to the vendor and its developers, leaving it unpatched and potentially exploitable. When attackers discover and exploit such a vulnerability before the software creator can develop and release a fix, it's called a zero-day attack. These attacks are particularly dangerous because they take advantage of the window between discovery and patching, during which systems are highly vulnerable. Zero-days are prized in cybercriminal circles and can be used for various malicious purposes, including data theft, system compromise, or as part of larger attack campaigns. Defending against zero-days often requires proactive security measures, as traditional signature-based defenses are ineffective against unknown threats.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is a Zero-day Attack?",
@@ -4116,7 +4116,7 @@
},
"v9njgIxZyabJZ5iND3JGc": {
"title": "Zero day",
"description": "A zero-day vulnerability is a software security flaw unknown to the vendor and exploit developers, leaving it unpatched and potentially exploitable. When attackers discover and exploit such a vulnerability before the software creator can develop and release a fix, it's called a zero-day attack. These attacks are particularly dangerous because they take advantage of the window between discovery and patching, during which systems are highly vulnerable. Zero-days are prized in cybercriminal circles and can be used for various malicious purposes, including data theft, system compromise, or as part of larger attack campaigns. Defending against zero-days often requires proactive security measures, as traditional signature-based defenses are ineffective against unknown threats.\n\nLearn more from the following resources:",
"description": "A zero-day vulnerability is a software security flaw unknown to the vendor and its developers, leaving it unpatched and potentially exploitable. When attackers discover and exploit such a vulnerability before the software creator can develop and release a fix, it's called a zero-day attack. These attacks are particularly dangerous because they take advantage of the window between discovery and patching, during which systems are highly vulnerable. Zero-days are prized in cybercriminal circles and can be used for various malicious purposes, including data theft, system compromise, or as part of larger attack campaigns. Defending against zero-days often requires proactive security measures, as traditional signature-based defenses are ineffective against unknown threats.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is a Zero-day Attack?",

View File

@@ -616,7 +616,7 @@
"type": "article"
},
{
"title": "Mecurial",
"title": "Mercurial",
"url": "https://www.mercurial-scm.org/",
"type": "article"
},
@@ -2850,8 +2850,8 @@
"description": "GitOps is a paradigm for managing infrastructure and application deployments using Git as the single source of truth. It extends DevOps practices by using Git repositories to store declarative descriptions of infrastructure and applications. Changes to the desired state are made through pull requests, which trigger automated processes to align the actual state with the desired state. GitOps relies on continuous deployment tools that automatically reconcile the live system with the desired state defined in Git. This approach provides benefits such as version control for infrastructure, improved auditability, easier rollbacks, and enhanced collaboration. GitOps is particularly well-suited for cloud-native applications and Kubernetes environments, offering a streamlined method for managing complex, distributed systems.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Guide to GitOps",
"url": "https://www.weave.works/technologies/gitops/",
"title": " GitOps",
"url": "https://www.gitops.tech/",
"type": "article"
},
{

View File

@@ -1694,7 +1694,7 @@
},
"jzYjHx-gIKSP8dQUTqWVw": {
"title": "commit-msg",
"description": "The commit-msg hook is a client-side hook that runs after you've committed changes to your repository. It's typically used to validate or modify the commit message before it's recorded in the Git history.\n\nVisit the following resources to learn more:",
"description": "The commit-msg hook is a client-side hook that runs after you enter a commit message, but before the commit is finalized in your repository. It's typically used to validate or modify the commit message before it's recorded in the Git history.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "A Git-Hook for Commit Messages Validation - No Husky, Just JS",

View File

@@ -1034,6 +1034,11 @@
"title": "Java Cryptography Tutorial",
"url": "https://jenkov.com/tutorials/java-cryptography/index.html",
"type": "article"
},
{
"title": "Cryptography 101 for Java developers",
"url": "https://www.youtube.com/watch?v=itmNhVckTPc",
"type": "video"
}
]
},

View File

@@ -1344,11 +1344,6 @@
"title": "JavaScript MDN Docs",
"url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#comparison_operators",
"type": "article"
},
{
"title": "Comparison operators",
"url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#comparison_operators",
"type": "article"
}
]
},

View File

@@ -1,8 +1,44 @@
{
"GISOFMKvnBys0O0IMpz2J": {
"title": "Learn the Basics",
"description": "",
"links": []
"description": "Python is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically-typed and garbage-collected.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Python Website",
"url": "https://www.python.org/",
"type": "article"
},
{
"title": "Python - Wiki",
"url": "https://en.wikipedia.org/wiki/Python_(programming_language)",
"type": "article"
},
{
"title": "Tutorial Series: How to Code in Python",
"url": "https://www.digitalocean.com/community/tutorials/how-to-write-your-first-python-3-program",
"type": "article"
},
{
"title": "Google's Python Class",
"url": "https://developers.google.com/edu/python",
"type": "article"
},
{
"title": "W3Schools - Python Tutorial",
"url": "https://www.w3schools.com/python",
"type": "article"
},
{
"title": "Explore top posts about Python",
"url": "https://app.daily.dev/tags/python?ref=roadmapsh",
"type": "article"
},
{
"title": "Learn Python - Full Course",
"url": "https://www.youtube.com/watch?v=4M87qBgpafk",
"type": "video"
}
]
},
"6xRncUs3_vxVbDur567QA": {
"title": "Basic Syntax",
@@ -261,119 +297,6 @@
]
},
"OPD4WdMO7q4gRZMcRCQh1": {
"title": "Arrays and Linked Lists",
"description": "",
"links": []
},
"0NlRczh6ZEaFLlT6LORWz": {
"title": "Heaps, Stacks and Queues",
"description": "",
"links": []
},
"DG4fi1e5ec2BVckPLsTJS": {
"title": "Hash Tables",
"description": "",
"links": []
},
"uJIqgsqUbE62Tyo3K75Qx": {
"title": "Binary Search Tree",
"description": "",
"links": []
},
"kLBgy_nxxjE8SxdVi04bq": {
"title": "Recursion",
"description": "",
"links": []
},
"vvTmjcWCVclOPY4f_5uB0": {
"title": "Sorting Algorithms",
"description": "",
"links": []
},
"274uk28wzxn6EKWQzLpHs": {
"title": "Modules",
"description": "Modules refer to a file containing Python statements and definitions. A file containing Python code, for example: `example.py`, is called a module, and its module name would be example. We use modules to break down large programs into small manageable and organized files. Furthermore, modules provide reusability of code.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Python Modules",
"url": "https://docs.python.org/3/tutorial/modules.html",
"type": "article"
},
{
"title": "Modules in Python",
"url": "https://www.programiz.com/python-programming/modules",
"type": "article"
}
]
},
"JDDG4KfhtIlw1rkNCzUli": {
"title": "Learn the Basics",
"description": "Python is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically-typed and garbage-collected.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Python Website",
"url": "https://www.python.org/",
"type": "article"
},
{
"title": "Python - Wiki",
"url": "https://en.wikipedia.org/wiki/Python_(programming_language)",
"type": "article"
},
{
"title": "Tutorial Series: How to Code in Python",
"url": "https://www.digitalocean.com/community/tutorials/how-to-write-your-first-python-3-program",
"type": "article"
},
{
"title": "Google's Python Class",
"url": "https://developers.google.com/edu/python",
"type": "article"
},
{
"title": "W3Schools - Python Tutorial",
"url": "https://www.w3schools.com/python",
"type": "article"
},
{
"title": "Explore top posts about Python",
"url": "https://app.daily.dev/tags/python?ref=roadmapsh",
"type": "article"
},
{
"title": "Learn Python - Full Course",
"url": "https://www.youtube.com/watch?v=4M87qBgpafk",
"type": "video"
}
]
},
"VJSIbYJcy2MC6MOFBrqXi": {
"title": "Data Structures & Algorithms",
"description": "A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated DSA Roadmap",
"url": "https://roadmap.sh/datastructures-and-algorithms",
"type": "article"
},
{
"title": "Learn DS & Algorithms",
"url": "https://www.programiz.com/dsa",
"type": "article"
},
{
"title": "Explore top posts about Algorithms",
"url": "https://app.daily.dev/tags/algorithms?ref=roadmapsh",
"type": "article"
},
{
"title": "Data Structures Illustrated",
"url": "https://www.youtube.com/playlist?list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY",
"type": "video"
}
]
},
"kIuns7FOwapwtFLKo1phQ": {
"title": "Arrays and Linked Lists",
"description": "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.\n\nVisit the following resources to learn more:",
"links": [
@@ -399,7 +322,7 @@
}
]
},
"rSfg5M65LyZldhrdWOr90": {
"0NlRczh6ZEaFLlT6LORWz": {
"title": "Heaps, Stacks and Queues",
"description": "**Stacks:** Operations are performed LIFO (last in, first out), which means that the last element added will be the first one removed. A stack can be implemented using an array or a linked list. If the stack runs out of memory, its called a stack overflow.\n\n**Queue:** Operations are performed FIFO (first in, first out), which means that the first element added will be the first one removed. A queue can be implemented using an array.\n\n**Heap:** A tree-based data structure in which the value of a parent node is ordered in a certain way with respect to the value of its child node(s). A heap can be either a min heap (the value of a parent node is less than or equal to the value of its children) or a max heap (the value of a parent node is greater than or equal to the value of its children).\n\nVisit the following resources to learn more:",
"links": [
@@ -435,7 +358,7 @@
}
]
},
"0-m8jVuDKE8hX1QorKGTM": {
"DG4fi1e5ec2BVckPLsTJS": {
"title": "Hash Tables",
"description": "Hash Table, Map, HashMap, Dictionary or Associative are all the names of the same data structure. It is a data structure that implements a set abstract data type, a structure that can map keys to values.\n\nVisit the following resources to learn more:",
"links": [
@@ -456,7 +379,7 @@
}
]
},
"7NZlydjm4432vLY1InBS7": {
"uJIqgsqUbE62Tyo3K75Qx": {
"title": "Binary Search Tree",
"description": "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\n\nVisit the following resources to learn more:",
"links": [
@@ -477,7 +400,7 @@
}
]
},
"94KnPMQdNTOwQkUv37tAk": {
"kLBgy_nxxjE8SxdVi04bq": {
"title": "Recursion",
"description": "Recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem. Recursion solves such recursive problems by using functions that call themselves from within their own code.\n\nVisit the following resources to learn more:",
"links": [
@@ -493,7 +416,7 @@
}
]
},
"YNptpfK9qv2ovmkUXLkJT": {
"vvTmjcWCVclOPY4f_5uB0": {
"title": "Sorting Algorithms",
"description": "Sorting refers to arranging data in a particular format. Sorting algorithm specifies the way to arrange data in a particular order. Most common orders are in numerical or lexicographical order. The importance of sorting lies in the fact that data searching can be optimized to a very high level, if data is stored in a sorted manner.\n\nVisit the following resources to learn more:",
"links": [
@@ -514,6 +437,48 @@
}
]
},
"274uk28wzxn6EKWQzLpHs": {
"title": "Modules",
"description": "Modules refer to a file containing Python statements and definitions. A file containing Python code, for example: `example.py`, is called a module, and its module name would be example. We use modules to break down large programs into small manageable and organized files. Furthermore, modules provide reusability of code.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Python Modules",
"url": "https://docs.python.org/3/tutorial/modules.html",
"type": "article"
},
{
"title": "Modules in Python",
"url": "https://www.programiz.com/python-programming/modules",
"type": "article"
}
]
},
"VJSIbYJcy2MC6MOFBrqXi": {
"title": "Data Structures & Algorithms",
"description": "A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated DSA Roadmap",
"url": "https://roadmap.sh/datastructures-and-algorithms",
"type": "article"
},
{
"title": "Learn DS & Algorithms",
"url": "https://www.programiz.com/dsa",
"type": "article"
},
{
"title": "Explore top posts about Algorithms",
"url": "https://app.daily.dev/tags/algorithms?ref=roadmapsh",
"type": "article"
},
{
"title": "Data Structures Illustrated",
"url": "https://www.youtube.com/playlist?list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY",
"type": "video"
}
]
},
"08XifLQ20c4FKI_4AWNBQ": {
"title": "Builtin",
"description": "Python has a rich standard library of built-in modules that provide a wide range of functionality. Some of the most commonly used built-in modules include: sys, os, math, datetime, random, re, itertools, etc.\n\nVisit the following resources to learn more:",
@@ -806,6 +771,11 @@
"title": "Poetry Docs",
"url": "https://python-poetry.org/docs/",
"type": "article"
},
{
"title": "Python Poetry - Basics",
"url": "https://www.youtube.com/watch?v=Ji2XDxmXSOM",
"type": "video"
}
]
},

View File

@@ -2150,6 +2150,11 @@
"title": "Git & GitHub Crash Course For Beginners",
"url": "https://www.youtube.com/watch?v=SWYqp7iY_Tc",
"type": "video"
},
{
"title": "Complete Git and GitHub Tutorial",
"url": "https://www.youtube.com/watch?v=apGV9Kg7ics",
"type": "video"
}
]
},

View File

@@ -564,7 +564,7 @@
"type": "article"
},
{
"title": "SQL Contraints",
"title": "SQL Constraints",
"url": "https://www.programiz.com/sql/constraints",
"type": "article"
}

View File

@@ -196,7 +196,7 @@
},
"_C-55tciBzc6_Kyk6272k": {
"title": "Replace the Routine",
"description": "In the UX design process, understanding and working with existing user behavior is crucial. One key aspect of this is the concept of \"replace the routine\". This involves observing and analyzing the current habits and routines of your users, and then designing your product around it.\n\nReplacing the routine in UX design is about finding more efficient, delightful, and engaging ways for users to complete their tasks. You should not look to force a completely new set of behaviors upon your users but instead improve their experience by offering a better alternative to their existing habits.\n\nConsider the following points when replacing the routine:\n\n* **Understand the user's context**: Study the users life cycle and create personas to better comprehend their . This helps you identify their preferences, pain points, and habits, which in turn enables the creation of a meaningful and effective design.\n \n* **Identify the existing routine**: Analyze the current habits and routines of your users. What are the steps they are used to taking in order to complete the task? This information will be vital in designing a product that smoothly replaces their existing routine with an improved one.\n \n* **Design an improved routine**: Create a new user flow that achieves the same goal but in a manner that is more efficient, simpler, and more intuitive for the user. This new routine should leverage the knowledge you have gained about your users and their preferences.\n \n* **Test the new routine**: The importance of usability testing cannot be overstated. Validate your design by having real users test it out, and gather feedback to identify any areas that can be further optimized. Ensure that the new routine actually improves upon the existing one and doesn't create any new confusion.\n \n* **Iterate and refine**: UX design is an ongoing process. Continuously refine and optimize the new routine based on the user feedback and changing user behavior trends.\n \n\nBy adopting the \"replace the routine\" approach in your UX design, you can provide your users with a better experience that aligns with their existing behaviors, while also introducing new efficiencies and possibilities. Doing so increases user satisfaction, promotes adoption, and ultimately leads to happier, loyal users.",
"description": "In the UX design process, understanding and working with existing user behavior is crucial. One key aspect of this is the concept of \"replace the routine\". This involves observing and analyzing the current habits and routines of your users, and then designing your product around it.\n\nReplacing the routine in UX design is about finding more efficient, delightful, and engaging ways for users to complete their tasks. You should not look to force a completely new set of behaviors upon your users but instead improve their experience by offering a better alternative to their existing habits.\n\nConsider the following points when replacing the routine:\n\n* **Understand the user's context**: Study the users life cycle and create personas to better comprehend their needs. This helps you identify their preferences, pain points, and habits, which in turn enables the creation of a meaningful and effective design.\n \n* **Identify the existing routine**: Analyze the current habits and routines of your users. What are the steps they are used to taking in order to complete the task? This information will be vital in designing a product that smoothly replaces their existing routine with an improved one.\n \n* **Design an improved routine**: Create a new user flow that achieves the same goal but in a manner that is more efficient, simpler, and more intuitive for the user. This new routine should leverage the knowledge you have gained about your users and their preferences.\n \n* **Test the new routine**: The importance of usability testing cannot be overstated. Validate your design by having real users test it out, and gather feedback to identify any areas that can be further optimized. Ensure that the new routine actually improves upon the existing one and doesn't create any new confusion.\n \n* **Iterate and refine**: UX design is an ongoing process. Continuously refine and optimize the new routine based on the user feedback and changing user behavior trends.\n \n\nBy adopting the \"replace the routine\" approach in your UX design, you can provide your users with a better experience that aligns with their existing behaviors, while also introducing new efficiencies and possibilities. Doing so increases user satisfaction, promotes adoption, and ultimately leads to happier, loyal users.",
"links": []
},
"use-consciousness-to-interfere@0MbrHG-VDrdZqQ0jWtiDo.md": {
@@ -398,8 +398,19 @@
},
"t46s6Piyd8MoJYzdDTsjr": {
"title": "Figma",
"description": "[Figma](https://www.figma.com/) is a powerful and versatile web-based design tool that allows designers, developers, and stakeholders to collaborate on UI and UX projects in real-time. It's an excellent choice for creating wireframes and high-fidelity prototypes and supports vector editing, responsive design, and team collaboration.\n\nKey Features\n------------",
"links": []
"description": "[Figma](https://www.figma.com/) is a powerful and versatile web-based design tool that allows designers, developers, and stakeholders to collaborate on UI and UX projects in real-time. It's an excellent choice for creating wireframes and high-fidelity prototypes and supports vector editing, responsive design, and team collaboration.\n\nKey Features\n------------\n\n* **Real-time collaboration**: Figma lets multiple users work on a single design simultaneously, so teams can easily collaborate and see each other's changes in real-time.\n \n* **Platform-independent**: As a web-based tool, Figma is accessible from any device with a browser and an internet connection. It is compatible with Windows, macOS, and Linux.\n \n* **Components**: Figma uses a 'component' system, which allows you to reuse elements across your designs. By creating a master component, any updates made to the master will be reflected in all instances, helping to keep your designs consistent.\n \n* **Prototyping**: Figma allows you to create interactive prototypes of your designs using built-in prototyping features, including animations and transitions. This helps you to communicate the intended user experience to stakeholders and to test your designs with users.\n \n* **Version history**: Figma automatically saves your work and maintains a version history that lets you go back to any previous version of your design.\n \n* **Plugins**: Figma supports a wide range of user-created plugins that extend its functionality, allowing you to tailor the tool to your specific needs.\n \n\nVisit the following resources to learn more:",
"links": [
{
"title": "Figma Website",
"url": "https://figma.com",
"type": "article"
},
{
"title": "Free Figma UX Design UI Essentials Course",
"url": "https://youtu.be/kbZejnPXyLM?si=W9oY5j_6AcSuHfq2",
"type": "video"
}
]
},
"HI_urBhPqT0m3AeBQJIej": {
"title": "Adobe XD",