diff --git a/public/roadmap-content/android.json b/public/roadmap-content/android.json index 4bcc79bde..1969a2ec0 100644 --- a/public/roadmap-content/android.json +++ b/public/roadmap-content/android.json @@ -620,8 +620,19 @@ }, "e3vHFaFFMV7kI9q6yf5e9": { "title": "Cloud Messaging", - "description": "Firebase Cloud Messaging (FCM) is a powerful, battery-efficient messaging service that enables you to send messages reliably and securely to your Android applications. It enables you to send two types of messages: \"notification messages\" and \"data messages\". Notification messages are primarily meant for user notifications and will only be delivered when the application is in the foreground. On the other hand, data messages can handle even when the app is in the background or killed and can be used to send custom key-value pairs. FCM also supports various additional features, such as topic messaging to send messages to multiple devices subscribed to a common topic, device group messaging for sending messages to groups of user devices, and upstream messaging for sending messages from the client application to the FCM server.", - "links": [] + "description": "Firebase Cloud Messaging (FCM) is a powerful, battery-efficient messaging service that enables you to send messages reliably and securely to your Android applications. It enables you to send two types of messages: \"notification messages\" and \"data messages\". Notification messages are primarily meant for user notifications and will only be delivered when the application is in the foreground. On the other hand, data messages can handle even when the app is in the background or killed and can be used to send custom key-value pairs. FCM also supports various additional features, such as topic messaging to send messages to multiple devices subscribed to a common topic, device group messaging for sending messages to groups of user devices, and upstream messaging for sending messages from the client application to the FCM server.\n\nVisit the following resources to learn more:", + "links": [ + { + "title": "Documentation", + "url": "https://firebase.google.com/docs/cloud-messaging/android/client", + "type": "article" + }, + { + "title": "Firebase Cloud Messaging", + "url": "https://www.youtube.com/watch?v=sioEY4tWmLI&list=PLl-K7zZEsYLkuHRCtHTpi6JYHka8oHLft", + "type": "video" + } + ] }, "3EEfKAd-ppIQpdQSEhbA1": { "title": "FireStore", diff --git a/public/roadmap-content/backend.json b/public/roadmap-content/backend.json index 3a624aeb9..2fcb415c0 100644 --- a/public/roadmap-content/backend.json +++ b/public/roadmap-content/backend.json @@ -2907,8 +2907,19 @@ }, "5XGvep2qoti31bsyqNzrU": { "title": "Real-Time Data", - "description": "Real-time data refers to information that is processed and made available immediately or with minimal delay, allowing users or systems to react promptly to current conditions. This type of data is essential in applications requiring immediate updates and responses, such as financial trading platforms, online gaming, real-time analytics, and monitoring systems. Real-time data processing involves capturing, analyzing, and delivering information as it is generated, often using technologies like stream processing frameworks (e.g., Apache Kafka, Apache Flink) and low-latency databases. Effective real-time data systems can handle high-speed data flows, ensuring timely and accurate decision-making.", - "links": [] + "description": "Real-time data refers to information that is processed and made available immediately or with minimal delay, allowing users or systems to react promptly to current conditions. This type of data is essential in applications requiring immediate updates and responses, such as financial trading platforms, online gaming, real-time analytics, and monitoring systems. Real-time data processing involves capturing, analyzing, and delivering information as it is generated, often using technologies like stream processing frameworks (e.g., Apache Kafka, Apache Flink) and low-latency databases. Effective real-time data systems can handle high-speed data flows, ensuring timely and accurate decision-making.\n\nLearn more from the following resources:", + "links": [ + { + "title": "Real-time data - Wiki", + "url": "https://en.wikipedia.org/wiki/Real-time_data", + "type": "article" + }, + { + "title": "What is Real-time Data?", + "url": "https://www.qlik.com/us/streaming-data/real-time-data", + "type": "article" + } + ] }, "osvajAJlwGI3XnX0fE-kA": { "title": "Long Polling", diff --git a/public/roadmap-content/devops.json b/public/roadmap-content/devops.json index 70bcbbe6b..908b06033 100644 --- a/public/roadmap-content/devops.json +++ b/public/roadmap-content/devops.json @@ -245,6 +245,11 @@ "title": "Ubuntu / Debian", "description": "Debian is a free and open-source Linux distribution developed by the Debian Project, an all volunteer software community organization. Debian is the upstream distribution of Ubuntu.\n\nUbuntu is a free and open-source Linux distribution based on Debian. Ubuntu is available in three versions Desktop, Server and Core.\n\nVisit the following resources to learn more:", "links": [ + { + "title": "Practice Linux Commands with Hands-on Labs\"", + "url": "https://labex.io/courses/linux-basic-commands-practice-online", + "type": "course" + }, { "title": "Debian Website", "url": "https://www.debian.org/", diff --git a/public/roadmap-content/git-github.json b/public/roadmap-content/git-github.json index ab3caee29..b0238b524 100644 --- a/public/roadmap-content/git-github.json +++ b/public/roadmap-content/git-github.json @@ -1437,12 +1437,22 @@ }, "BKVA6Q7DXemAYjyQOA0nh": { "title": "git filter-branch", - "description": "You can use `git filter-branch` to rewrite Git revision history by applying custom filters on each revision.\n\n* Filter types: You can modify trees (e.g., removing a file or running a Perl script) or information about each commit.\n* Preserving original data: The command preserves all original commit times, merge information, and other details unless specified otherwise.\n* Rewriting specific branches: Only the positive refs mentioned in the command line are rewritten; if no filters are specified, commits are recommitted without changes.\n\nVisit the following resources to learn more:", + "description": "You can use `git filter-branch` to rewrite Git revision history by applying custom filters on each revision.\n\n* Filter types: You can modify trees (e.g., removing a file or running a Perl script) or information about each commit.\n* Preserving original data: The command preserves all original commit times, merge information, and other details unless specified otherwise.\n* Rewriting specific branches: Only the positive refs mentioned in the command line are rewritten; if no filters are specified, commits are recommitted without changes.\n\nNotably, there exists a simpler, safer, and more powerful alternative: `git filter-repo`. This tool is actively promoted by Git and offers a streamlined approach to filtering revisions, making it a preferred choice for rewriting your Git history, especially when managing large repositories.\n\nVisit the following resources to learn more:", "links": [ { "title": "git filter-branch", "url": "https://git-scm.com/docs/git-filter-branch", "type": "article" + }, + { + "title": "git filter-repo", + "url": "https://github.com/newren/git-filter-repo", + "type": "article" + }, + { + "title": "Removing sensitive data from a repository", + "url": "https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository", + "type": "article" } ] }, diff --git a/public/roadmap-content/ios.json b/public/roadmap-content/ios.json index 79596763e..5740a70d7 100644 --- a/public/roadmap-content/ios.json +++ b/public/roadmap-content/ios.json @@ -965,6 +965,11 @@ "title": "SwiftUI", "description": "SwiftUI is Apple's modern declarative framework for building user interfaces across all Apple platforms. Introduced in 2019, it allows developers to create UIs using Swift code, describing the desired layout and behavior rather than implementing them imperatively. SwiftUI offers a more concise and intuitive approach to UI development, with features like automatic support for Dark Mode, dynamic type, and localization. It uses a state-driven approach, automatically updating the UI when underlying data changes. While newer than UIKit, SwiftUI is rapidly evolving and gaining adoption, offering seamless integration with UIKit when needed.\n\nLearn more from the following resources:", "links": [ + { + "title": "HackingWithSwift - 100 Days of SwiftUI", + "url": "https://www.hackingwithswift.com/100/swiftui", + "type": "course" + }, { "title": "SwiftUI Documentation", "url": "https://developer.apple.com/xcode/swiftui/", diff --git a/public/roadmap-content/mlops.json b/public/roadmap-content/mlops.json index 5289a317d..34eb422f7 100644 --- a/public/roadmap-content/mlops.json +++ b/public/roadmap-content/mlops.json @@ -393,7 +393,7 @@ }, "o6GQ3-8DgDtHzdX6yeg1w": { "title": "Flink", - "description": "Apache Flink is a distributed stream processing framework that is used to process large amounts of data in real-time. It is designed to be highly scalable and fault-tolerant. Flink is built on top of the Apache Kafka messaging system and is used to process data streams in real-time.\n\nVisit the following resources to learn more:", + "description": "Apache Flink is an open-source stream processing framework designed for real-time and batch data processing with low latency and high throughput. It supports event time processing, fault tolerance, and stateful operations, making it ideal for applications like real-time analytics, fraud detection, and event-driven systems. Flink is highly scalable, integrates with various data systems, and is widely used in industries for large-scale, real-time data processing tasks.\n\nVisit the following resources to learn more:", "links": [ { "title": "Apache Flink Documentation", @@ -404,6 +404,11 @@ "title": "Explore top posts about Apache Flink", "url": "https://app.daily.dev/tags/apache-flink?ref=roadmapsh", "type": "article" + }, + { + "title": "Apache Flink Tutorialpoint", + "url": "https://www.tutorialspoint.com/apache_flink/apache_flink_introduction.htm", + "type": "article" } ] }, diff --git a/public/roadmap-content/ux-design.json b/public/roadmap-content/ux-design.json index aa025ac2d..30824b4c4 100644 --- a/public/roadmap-content/ux-design.json +++ b/public/roadmap-content/ux-design.json @@ -64,7 +64,7 @@ }, "kcG4IpneJzA6di0uqTiwb": { "title": "CREATE Action Funnel", - "description": "Stephen Wendell's Create Action Funnel is a UX design framework focused on converting website visitors into active customers through a systematic and engaging process. The approach emphasizes on understanding user behavior, catering to their needs, and directing them towards specific actions. The Action Funnel consists of four major steps:\n\n* **Establish the Objectives:** Before diving into the design, clearly define the goals you want to achieve through the website or app. Determine what actions you want the users to take (e.g., sign up, make a purchase, share content) and what constitutes a successful conversion.\n \n* **Understand User Mindsets:** Identify your target audience and recognize their needs, preferences, emotions, and pain points. Accomplishing this requires user research, creating personas, storyboarding, and empathy mapping, among other methods.\n \n* **Design the Optimal User Flow:** Craft a seamless and intuitive user journey by designing a clear path from the landing page to the desired action. Prioritize simplicity, usability, and efficiency. Make sure to include meaningful touchpoints and interactions to engage the users and make it easy for them to complete the intended action.\n \n* **Refine and Test the Experience:** Use wireframes and prototypes to test and iteratively refine the user experience. Employ user testing, A/B testing, and analytics to gather insight on user behavior, preferences, and engagement. Continuously use feedback to make improvements, ensuring that the design effectively leads visitors down the action funnel.\n \n\nBy implementing Stephen Wendell's `Create Action Funnel`, you can effectively guide users through an engaging journey that motivates them to become active customers, ultimately increasing conversion rates and overall satisfaction.", + "description": "Stephen Wendel's CREATE Action Funnel is a behavioral design framework aimed at helping individuals or organizations encourage specific behaviors in others, especially in the context of product design. It breaks down the process of motivating action into six key stages. Each stage helps identify where users might drop off or face barriers, allowing designers or strategists to address these pain points effectively. These stages are:\n\n* **CUE:** The user must notice a cue or prompt that tells them to act. This could be a notification, a visual element, or any kind of reminder.\n \n* **REACTION:** The user must react positively to the cue. This stage involves emotional and cognitive processing, where the individual decides if the action is relevant or attractive.\n \n* **EVALUATION:** The user evaluates whether the action is worth their time, energy, or resources. They assess the benefits versus the effort required.\n \n* **ABILITY:** The user must feel capable of taking the action. This involves ensuring that the action is easy enough to do and aligns with their skills and resources.\n \n* **TIMING:** The action needs to happen at the right time. Users need to have the opportunity and be in the right context to act.\n \n* **EXECUTION:** Finally, the action must be carried out successfully. This is the stage where the behavior is completed.\n \n\nThe CREATE Action Funnel is helpful for product designers, marketers, or behavior change professionals, as it provides a structured way to understand user actions and design interventions to improve completion rates. It identifies and solves the gaps that occur between intention and action.", "links": [ { "title": "Behavioral Science Crash Course: Steve Wendel's CREATE Action Funnel", @@ -75,7 +75,7 @@ }, "0Df110GZcDw5wbAe1eKoA": { "title": "Spectrum of Thinking Interventions", - "description": "The _Spectrum of Thinking Interventions_ provides a structure to guide your UX design process, helping you identify the types and range of thinking interventions that the user may require. This spectrum encompasses four primary categories: guidance, explanation, exploration, and creation.\n\nGuidance\n--------\n\nGuidance-based interventions are designed to help users navigate through a digital product or service with minimal effort. They may be aimed at full-fledged beginners, casual users, or experts in their respective domains. Such interventions may include signposts, tooltips, and clearly articulated labels.\n\n_Examples:_\n\n* Visual cues (e.g., icons, colors)\n* Signposting (e.g., breadcrumbs)\n* In-context information (e.g., tool tips, hints)\n\nExplanation\n-----------\n\nExplanation-based interventions provide users with detailed narratives, overviews, or background information that helps them make informed decisions. This may include tutorials, articles, videos, or any other mediums that help explain complex concepts or instructions.\n\n_Examples:_\n\n* Multimedia tutorials\n* Articles or blog posts\n* Infographics or diagrams\n\nExploration\n-----------\n\nExploration-based interventions encourage users to understand and interact with the product by investigating, asking questions, or searching for solutions on their own. This can be done by providing interactive elements, multiple pathways, and opportunities for discovery.\n\n_Examples:_\n\n* Interactive simulations or models\n* Advanced search capabilities\n* Multiple UI paths for task completion\n\nCreation\n--------\n\nCreation-based interventions engage users by offering them the tools and resources to co-create or customize their experience. This type of intervention often involves a more extensive level of input and involvement from the user as they become active participants in the design process.\n\n_Examples:_\n\n* Customizable user interfaces\n* Allowing users to create their content\n* Enabling users to manage their preferences, settings, and configurations\n\nWith this spectrum in mind, it is essential as a UX designer to analyze which types of thinking interventions are most relevant to your target users and design the most accessible and effective solutions. Always consider how these interventions will influence users' decision-making processes and their overall satisfaction with your digital product or service.", + "description": "The _Spectrum of Thinking Interventions_ provides a structure for understanding the different types of decision-making processes by illustrating how our minds would respond in a _default, lowest energy way_, if we didn't consciously do something different. This spectrum ranges from situations requiring minimal thought to those demanding intensive thinking, and includes the mechanisms (\"interventions\") that our minds will likely use.\n\n* **Habits:** Triggering a learned routine based on familiar cues\n* **Other intuitive responses:** Used in familiar or semi-familiar situations, with responses based on past experiences\n* **Active mindset or self-concept:** Used in ambiguous scenarios with multiple possible interpretations\n* **Heuristics:** Used in situations requiring conscious attention, but where decisions can be made more easily\n* **Focused, conscious calculation:** Used in unfamiliar scenarios or crucial decisions where deliberate focus is needed\n\nWith this spectrum in mind, it is essential as a UX designer to leverage on the mind's decision-making process, analyze which mechanisms are most applicable to your target users and design the most accessible and effective solutions.", "links": [] }, "kWA8CvocP1pkom2N7O4gb": { diff --git a/public/roadmap-content/vue.json b/public/roadmap-content/vue.json index 2881cbdb2..7e4db86cd 100644 --- a/public/roadmap-content/vue.json +++ b/public/roadmap-content/vue.json @@ -242,13 +242,25 @@ }, "NCIzs3jbQTv1xXhAaGfZN": { "title": "v-text", - "description": "", - "links": [] + "description": "The `v-text` directive is used to set the textContent property of an element. It's important to note that when using this directive it will overwrite the HTML content inside the element. The expected input is a string, so it's important to wrap any text in single quotes.\n\nExample:\n\n \n \n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-text documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-text", + "type": "article" + } + ] }, "bZxtIBeIfeUcR32LZWrPW": { "title": "v-html", - "description": "", - "links": [] + "description": "The `v-thml` directive is similar to the `v-text` directive, but the difference is that `v-html` renders its content as HTML. This means that if you pass an HTML element it will be rendered as an element and not plain text. Since the content is render as HTMl, it can pose a security risk if the content contains malicius JavaScript code. For this reason you should never use this directive in combination with user input, unless the input is first properly sanitized.\n\nExample:\n\n \n \n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-html documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-html", + "type": "article" + } + ] }, "_TlbGTKFCMO0wdLbC6xHX": { "title": "v-show", @@ -285,13 +297,25 @@ }, "a9caVhderJaVo0v14w8WB": { "title": "v-else-if", - "description": "", - "links": [] + "description": "This directive is used to add additional conditions to a v-if and v-else block.\n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-else-if Documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-else-if", + "type": "article" + } + ] }, "3ftwRjQ9e1-qDT9BV53zr": { "title": "v-for", - "description": "", - "links": [] + "description": "The `v-for` directive is used to render an HTML element, a block of elements, or even a component based on an array, an object, or a set number of times. When using this directive it is important to assign a unique key to each item to avoid issues and improve perfomance. This directive follows the `item in items` syntax.\n\nExample:\n\n \n \n \n \n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-for documentation", + "url": "https://vuejs.org/guide/essentials/list#v-for", + "type": "article" + } + ] }, "hVuRmhXVP65IPtuHTORjJ": { "title": "v-on", @@ -300,8 +324,14 @@ }, "cuM9q9vYy8JpZPGeBffd1": { "title": "v-bind", - "description": "", - "links": [] + "description": "The `v-bind` directive dynamically binds an HTML attribute to data.\n\nThe shorthand for this directive is `:`\n\nExample:\n\n \n \n \n \n\nVisit the following resources for more information:", + "links": [ + { + "title": "v-bind documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-bind", + "type": "article" + } + ] }, "cxu2Wbt306SxM4JKQQqnL": { "title": "v-model", @@ -321,13 +351,25 @@ }, "5k9CrbzhNy9iiS6ez2UE6": { "title": "v-once", - "description": "", - "links": [] + "description": "The `v-once` directive makes an HTML element render only once, skipping every future update.\n\nExample:\n\n \n \n \n \n\nIn this example the **p** element will not change its text even if the input variable is changed through the **input** element.\n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-once documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-once", + "type": "article" + } + ] }, "mlsrhioiEkqnRIL6O3hNa": { "title": "v-pre", - "description": "", - "links": [] + "description": "The `v-pre` directive makes an element render its content as-is, skipping its compilation. The most common use case is when displaying raw mustache syntax.\n\nExample:\n\n \n \n \n \n\nThe **p** element will display: `{{ text }}` and not `Some Text` because the compilation is skipped.\n\nVisit the following resources to learn more:", + "links": [ + { + "title": "v-pre Documentation", + "url": "https://vuejs.org/api/built-in-directives.html#v-pre", + "type": "article" + } + ] }, "RrSekP8Ub01coegMwLP6a": { "title": "v-cloak",