diff --git a/public/roadmap-content/ai-agents.json b/public/roadmap-content/ai-agents.json index a6712faa4d25..6245b7b9ec2d 100644 --- a/public/roadmap-content/ai-agents.json +++ b/public/roadmap-content/ai-agents.json @@ -1508,7 +1508,7 @@ ] }, "Ka6VpCEnqABvwiF9vba7t": { - "title": "Langchain", + "title": "LangChain", "description": "LangChain is a Python and JavaScript library that helps you put large language models to work in real products. It gives ready-made parts for common agent tasks such as talking to many tools, keeping short-term memory, and calling an external API when the model needs fresh data. You combine these parts like Lego blocks: pick a model, add a prompt template, chain the steps, then wrap the chain in an “agent” that can choose what step to run next. Built-in connectors link to OpenAI, Hugging Face, vector stores, and SQL databases, so you can search documents or pull company data without writing a lot of glue code. This lets you move fast from idea to working bot, while still letting you swap out parts if your needs change.\n\nVisit the following resources to learn more:", "links": [ { @@ -2060,5 +2060,25 @@ "type": "article" } ] + }, + "agno@PY5WTJgRnXiYeOM6BBUvn.md": { + "title": "Agno", + "description": "", + "links": [] + }, + "langgraph@O53AvUSRB5SI6hhwKxniL.md": { + "title": "LangGraph", + "description": "", + "links": [] + }, + "self-critique-agents@hBW8-z72NcETDn_cearYc.md": { + "title": "Self-critique Agents", + "description": "", + "links": [] + }, + "multi-agents@FjAYD6ZhAuPcS6gbvBBtE.md": { + "title": "Multi-Agents", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/ai-engineer.json b/public/roadmap-content/ai-engineer.json index 27c09d679735..7da981877668 100644 --- a/public/roadmap-content/ai-engineer.json +++ b/public/roadmap-content/ai-engineer.json @@ -1,4 +1,25 @@ { + "v99C5Bml2a6148LCJ9gy9": { + "title": "Hugging Face", + "description": "Hugging Face is a leading AI company and open-source platform that provides tools, models, and libraries for natural language processing (NLP), computer vision, and other machine learning tasks. It is best known for its \"Transformers\" library, which simplifies the use of pre-trained models like BERT, GPT, T5, and CLIP, making them accessible for tasks such as text classification, translation, summarization, and image recognition.\n\nLearn more from the following resources:", + "links": [ + { + "title": "Hugging Face Official Video Course", + "url": "https://www.youtube.com/watch?v=00GKzGyWFEs&list=PLo2EIpI_JMQvWfQndUesu0nPBAtZ9gP1o", + "type": "course" + }, + { + "title": "Hugging Face", + "url": "https://huggingface.co", + "type": "article" + }, + { + "title": "What is Hugging Face? - Machine Learning Hub Explained", + "url": "https://www.youtube.com/watch?v=1AUjKfpRZVo", + "type": "video" + } + ] + }, "_hYN0gEi9BL24nptEtXWU": { "title": "Introduction", "description": "AI Engineering is the process of designing and implementing AI systems using pre-trained models and existing AI tools to solve practical problems. AI Engineers focus on applying AI in real-world scenarios, improving user experiences, and automating tasks, without developing new models from scratch. They work to ensure AI systems are efficient, scalable, and can be seamlessly integrated into business applications, distinguishing their role from AI Researchers and ML Engineers, who concentrate more on creating new models or advancing AI theory.\n\nLearn more from the following resources:", @@ -62,47 +83,15 @@ } ] }, - "wf2BSyUekr1S1q6l8kyq6": { - "title": "LLMs", - "description": "LLMs, or Large Language Models, are advanced AI models trained on vast datasets to understand and generate human-like text. They can perform a wide range of natural language processing tasks, such as text generation, translation, summarization, and question answering. Examples include GPT-4, BERT, and T5. LLMs are capable of understanding context, handling complex queries, and generating coherent responses, making them useful for applications like chatbots, content creation, and automated support. However, they require significant computational resources and may carry biases from their training data.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is a large language model (LLM)?", - "url": "https://www.cloudflare.com/en-gb/learning/ai/what-is-large-language-model/", - "type": "article" - }, - { - "title": "How Large Language Models Work", - "url": "https://www.youtube.com/watch?v=5sLYAQS9sWQ", - "type": "video" - }, - { - "title": "Large Language Models (LLMs) - Everything You NEED To Know", - "url": "https://www.youtube.com/watch?v=osKyvYJ3PRM", - "type": "video" - } - ] + "large-language-model-llm@wf2BSyUekr1S1q6l8kyq6.md": { + "title": "Large Language Model (LLM)", + "description": "", + "links": [] }, - "KWjD4xEPhOOYS51dvRLd2": { + "inference@4NtUD9V64gkp8SFudj_ai.md": { "title": "Inference", - "description": "In artificial intelligence (AI), inference refers to the process where a trained machine learning model makes predictions or draws conclusions from new, unseen data. Unlike training, inference involves the model applying what it has learned to make decisions without needing examples of the exact result. In essence, inference is the AI model actively functioning. For example, a self-driving car recognizing a stop sign on a road it has never encountered before demonstrates inference. The model identifies the stop sign in a new setting, using its learned knowledge to make a decision in real-time.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Inference vs Training", - "url": "https://www.cloudflare.com/learning/ai/inference-vs-training/", - "type": "article" - }, - { - "title": "What is Machine Learning Inference?", - "url": "https://hazelcast.com/glossary/machine-learning-inference/", - "type": "article" - }, - { - "title": "What is Machine Learning Inference? An Introduction to Inference Approaches", - "url": "https://www.datacamp.com/blog/what-is-machine-learning-inference", - "type": "article" - } - ] + "description": "", + "links": [] }, "xostGgoaYkqMO28iN2gx8": { "title": "Training", @@ -125,100 +114,25 @@ } ] }, - "XyEp6jnBSpCxMGwALnYfT": { - "title": "Embeddings", - "description": "Embeddings are dense, continuous vector representations of data, such as words, sentences, or images, in a lower-dimensional space. They capture the semantic relationships and patterns in the data, where similar items are placed closer together in the vector space. In machine learning, embeddings are used to convert complex data into numerical form that models can process more easily. For example, word embeddings represent words based on their meanings and contexts, allowing models to understand relationships like synonyms or analogies. Embeddings are widely used in tasks like natural language processing, recommendation systems, and image recognition to improve model performance and efficiency.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What are Embeddings in Machine Learning?", - "url": "https://www.cloudflare.com/en-gb/learning/ai/what-are-embeddings/", - "type": "article" - }, - { - "title": "What is Embedding?", - "url": "https://www.ibm.com/topics/embedding", - "type": "article" - }, - { - "title": "What are Word Embeddings", - "url": "https://www.youtube.com/watch?v=wgfSDrqYMJ4", - "type": "video" - } - ] - }, - "LnQ2AatMWpExUHcZhDIPd": { - "title": "Vector Databases", - "description": "Vector databases are specialized systems designed to store, index, and retrieve high-dimensional vectors, often used as embeddings that represent data like text, images, or audio. Unlike traditional databases that handle structured data, vector databases excel at managing unstructured data by enabling fast similarity searches, where vectors are compared to find those that are most similar to a query. This makes them essential for tasks like semantic search, recommendation systems, and content discovery, where understanding relationships between items is crucial. Vector databases use indexing techniques such as approximate nearest neighbor (ANN) search to efficiently handle large datasets, ensuring quick and accurate retrieval even at scale.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Vector Databases", - "url": "https://developers.cloudflare.com/vectorize/reference/what-is-a-vector-database/", - "type": "article" - }, - { - "title": "What are Vector Databases?", - "url": "https://www.mongodb.com/resources/basics/databases/vector-databases", - "type": "article" - } - ] + "vector-dbs@dzPKW_fn82lY1OOVrggk3.md": { + "title": "Vector DBs", + "description": "", + "links": [] }, - "9JwWIK0Z2MK8-6EQQJsCO": { + "rag@IX1BJWGwGmB4L063g0Frf.md": { "title": "RAG", - "description": "Retrieval-Augmented Generation (RAG) is an AI approach that combines information retrieval with language generation to create more accurate, contextually relevant outputs. It works by first retrieving relevant data from a knowledge base or external source, then using a language model to generate a response based on that information. This method enhances the accuracy of generative models by grounding their outputs in real-world data, making RAG ideal for tasks like question answering, summarization, and chatbots that require reliable, up-to-date information.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is Retrieval Augmented Generation (RAG)? - Datacamp", - "url": "https://www.datacamp.com/blog/what-is-retrieval-augmented-generation-rag", - "type": "article" - }, - { - "title": "What is Retrieval-Augmented Generation? - Google", - "url": "https://cloud.google.com/use-cases/retrieval-augmented-generation", - "type": "article" - }, - { - "title": "What is Retrieval-Augmented Generation? - IBM", - "url": "https://www.youtube.com/watch?v=T-D1OfcDW1M", - "type": "video" - } - ] + "description": "", + "links": [] }, - "Dc15ayFlzqMF24RqIF_-X": { + "prompt-engineering@VjXmSCdzi2ACv-W85Sy9D.md": { "title": "Prompt Engineering", - "description": "Prompt engineering is the process of crafting effective inputs (prompts) to guide AI models, like GPT, to generate desired outputs. It involves strategically designing prompts to optimize the model’s performance by providing clear instructions, context, and examples. Effective prompt engineering can improve the quality, relevance, and accuracy of responses, making it essential for applications like chatbots, content generation, and automated support. By refining prompts, developers can better control the model’s behavior, reduce ambiguity, and achieve more consistent results, enhancing the overall effectiveness of AI-driven systems.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Visit Dedicated Prompt Engineering Roadmap", - "url": "https://roadmap.sh/prompt-engineering", - "type": "article" - }, - { - "title": "What is Prompt Engineering?", - "url": "https://www.youtube.com/watch?v=nf1e-55KKbg", - "type": "video" - } - ] + "description": "", + "links": [] }, - "9XCxilAQ7FRet7lHQr1gE": { + "ai-agents@Uffu609uQbIzDl88Ddccv.md": { "title": "AI Agents", - "description": "In AI engineering, \"agents\" refer to autonomous systems or components that can perceive their environment, make decisions, and take actions to achieve specific goals. Agents often interact with external systems, users, or other agents to carry out complex tasks. They can vary in complexity, from simple rule-based bots to sophisticated AI-powered agents that leverage machine learning models, natural language processing, and reinforcement learning.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Building an AI Agent Tutorial - LangChain", - "url": "https://python.langchain.com/docs/tutorials/agents/", - "type": "article" - }, - { - "title": "AI Agents and Their Types", - "url": "https://play.ht/blog/ai-agents-use-cases/", - "type": "article" - }, - { - "title": "The Complete Guide to Building AI Agents for Beginners", - "url": "https://youtu.be/MOyl58VF2ak?si=-QjRD_5y3iViprJX", - "type": "video" - } - ] + "description": "", + "links": [] }, "5QdihE1lLpMc3DFrGy46M": { "title": "AI vs AGI", @@ -279,181 +193,40 @@ } ] }, - "1Ga6DbOPc6Crz7ilsZMYy": { - "title": "Benefits of Pre-trained Models", - "description": "Pre-trained models offer several benefits in AI engineering by significantly reducing development time and computational resources because these models are trained on large datasets and can be fine-tuned for specific tasks, which enables quicker deployment and better performance with less data. They help overcome the challenge of needing vast amounts of labeled data and computational power for training from scratch. Additionally, pre-trained models often demonstrate improved accuracy, generalization, and robustness across different tasks, making them ideal for applications in natural language processing, computer vision, and other AI domains.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Why Pre-Trained Models Matter For Machine Learning", - "url": "https://www.ahead.com/resources/why-pre-trained-models-matter-for-machine-learning/", - "type": "article" - }, - { - "title": "Why You Should Use Pre-Trained Models Versus Building Your Own", - "url": "https://cohere.com/blog/pre-trained-vs-in-house-nlp-models", - "type": "article" - } - ] - }, - "MXqbQGhNM3xpXlMC2ib_6": { - "title": "Limitations and Considerations", - "description": "Pre-trained models, while powerful, come with several limitations and considerations. They may carry biases present in the training data, leading to unintended or discriminatory outcomes, these models are also typically trained on general data, so they might not perform well on niche or domain-specific tasks without further fine-tuning. Another concern is the \"black-box\" nature of many pre-trained models, which can make their decision-making processes hard to interpret and explain.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Pre-trained Topic Models: Advantages and Limitation", - "url": "https://www.kaggle.com/code/amalsalilan/pretrained-topic-models-advantages-and-limitation", - "type": "article" - }, - { - "title": "Should You Use Open Source Large Language Models?", - "url": "https://www.youtube.com/watch?v=y9k-U9AuDeM", - "type": "video" - } - ] - }, - "2WbVpRLqwi3Oeqk1JPui4": { - "title": "Open AI Models", - "description": "OpenAI provides a variety of models designed for diverse tasks. GPT models like GPT-3 and GPT-4 handle text generation, conversation, and translation, offering context-aware responses, while Codex specializes in generating and debugging code across multiple languages. DALL-E creates images from text descriptions, supporting applications in design and content creation, and Whisper is a speech recognition model that converts spoken language to text for transcription and voice-to-text tasks.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Models Overview", - "url": "https://platform.openai.com/docs/models", - "type": "article" - }, - { - "title": "OpenAI’s new “deep-thinking” o1 model crushes coding benchmarks", - "url": "https://www.youtube.com/watch?v=6xlPJiNpCVw", - "type": "video" - } - ] - }, - "vvpYkmycH0_W030E-L12f": { - "title": "Capabilities / Context Length", - "description": "A key aspect of the OpenAI models is their context length, which refers to the amount of input text the model can process at once. Earlier models like GPT-3 had a context length of up to 4,096 tokens (words or word pieces), while more recent models like GPT-4 can handle significantly larger context lengths, some supporting up to 32,768 tokens. This extended context length enables the models to handle more complex tasks, such as maintaining long conversations or processing lengthy documents, which enhances their utility in real-world applications like legal document analysis or code generation.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Managing Context", - "url": "https://platform.openai.com/docs/guides/conversation-state?api-mode=responses#managing-context-for-text-generation", - "type": "article" - }, - { - "title": "Capabilities", - "url": "https://platform.openai.com/docs/guides/text-generation", - "type": "article" - } - ] - }, - "LbB2PeytxRSuU07Bk0KlJ": { - "title": "Cut-off Dates / Knowledge", - "description": "OpenAI models, such as GPT-3.5 and GPT-4, have a knowledge cutoff date, which refers to the last point in time when the model was trained on data. For instance, as of the current version of GPT-4, the knowledge cutoff is October 2023. This means the model does not have awareness or knowledge of events, advancements, or data that occurred after that date. Consequently, the model may lack information on more recent developments, research, or real-time events unless explicitly updated in future versions. This limitation is important to consider when using the models for time-sensitive tasks or inquiries involving recent knowledge.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Knowledge Cutoff Dates of all LLMs explained", - "url": "https://otterly.ai/blog/knowledge-cutoff/", - "type": "article" - }, - { - "title": "Knowledge Cutoff Dates For ChatGPT, Meta Ai, Copilot, Gemini, Claude", - "url": "https://computercity.com/artificial-intelligence/knowledge-cutoff-dates-llms", - "type": "article" - } - ] + "tokens@2WbVpRLqwi3Oeqk1JPui4.md": { + "title": "Tokens", + "description": "", + "links": [] }, - "hy6EyKiNxk1x84J63dhez": { - "title": "Anthropic's Claude", - "description": "Anthropic's Claude is an AI language model designed to facilitate safe and scalable AI systems. Named after Claude Shannon, the father of information theory, Claude focuses on responsible AI use, emphasizing safety, alignment with human intentions, and minimizing harmful outputs. Built as a competitor to models like OpenAI's GPT, Claude is designed to handle natural language tasks such as generating text, answering questions, and supporting conversations, with a strong focus on aligning AI behavior with user goals while maintaining transparency and avoiding harmful biases.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Claude", - "url": "https://claude.ai", - "type": "article" - }, - { - "title": "How To Use Claude Pro For Beginners", - "url": "https://www.youtube.com/watch?v=J3X_JWQkvo8", - "type": "video" - } - ] + "context@vvpYkmycH0_W030E-L12f.md": { + "title": "Context", + "description": "", + "links": [] }, - "oe8E6ZIQWuYvHVbYJHUc1": { - "title": "Google's Gemini", - "description": "Google Gemini is an advanced AI model by Google DeepMind, designed to integrate natural language processing with multimodal capabilities, enabling it to understand and generate not just text but also images, videos, and other data types. It combines generative AI with reasoning skills, making it effective for complex tasks requiring logical analysis and contextual understanding. Built on Google's extensive knowledge base and infrastructure, Gemini aims to offer high accuracy, efficiency, and safety, positioning it as a competitor to models like OpenAI's GPT-4.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Google Gemini", - "url": "https://gemini.google.com/", - "type": "article" - }, - { - "title": "Google's Gemini Documentation", - "url": "https://workspace.google.com/solutions/ai/", - "type": "article" - }, - { - "title": "Welcome to the Gemini era", - "url": "https://www.youtube.com/watch?v=_fuimO6ErKI", - "type": "video" - } - ] + "anthropic-claude@hy6EyKiNxk1x84J63dhez.md": { + "title": "Anthropic Claude", + "description": "", + "links": [] }, - "3PQVZbcr4neNMRr6CuNzS": { - "title": "Azure AI", - "description": "Azure AI is a suite of AI services and tools provided by Microsoft through its Azure cloud platform. It includes pre-built AI models for natural language processing, computer vision, and speech, as well as tools for developing custom machine learning models using services like Azure Machine Learning. Azure AI enables developers to integrate AI capabilities into applications with APIs for tasks like sentiment analysis, image recognition, and language translation. It also supports responsible AI development with features for model monitoring, explainability, and fairness, aiming to make AI accessible, scalable, and secure across industries.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Azure AI", - "url": "https://azure.microsoft.com/en-gb/solutions/ai", - "type": "article" - }, - { - "title": "How to Choose the Right Models for Your Apps", - "url": "https://www.youtube.com/watch?v=sx_uGylH8eg", - "type": "video" - } - ] + "google-gemini@oe8E6ZIQWuYvHVbYJHUc1.md": { + "title": "Google Gemini", + "description": "", + "links": [] }, - "OkYO-aSPiuVYuLXHswBCn": { - "title": "AWS Sagemaker", - "description": "AWS SageMaker is a fully managed machine learning service from Amazon Web Services that enables developers and data scientists to build, train, and deploy machine learning models at scale. It provides an integrated development environment, simplifying the entire ML workflow, from data preparation and model development to training, tuning, and inference. SageMaker supports popular ML frameworks like TensorFlow, PyTorch, and Scikit-learn, and offers features like automated model tuning, model monitoring, and one-click deployment. It's designed to make machine learning more accessible and scalable, even for large enterprise applications.\n\nLearn more from the following resources:", - "links": [ - { - "title": "AWS SageMaker", - "url": "https://aws.amazon.com/sagemaker/", - "type": "article" - }, - { - "title": "Introduction to Amazon SageMaker", - "url": "https://www.youtube.com/watch?v=Qv_Tr_BCFCQ", - "type": "video" - } - ] + "openai-gpt-o-series@3PQVZbcr4neNMRr6CuNzS.md": { + "title": "OpenAI (GPT, o-series)", + "description": "", + "links": [] }, - "8XjkRqHOdyH-DbXHYiBEt": { - "title": "Hugging Face Models", - "description": "Hugging Face models are a collection of pre-trained machine learning models available through the Hugging Face platform, covering a wide range of tasks like natural language processing, computer vision, and audio processing. The platform includes models for tasks such as text classification, translation, summarization, question answering, and more, with popular models like BERT, GPT, T5, and CLIP. Hugging Face provides easy-to-use tools and APIs that allow developers to access, fine-tune, and deploy these models, fostering a collaborative community where users can share, modify, and contribute models to improve AI research and application development.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Hugging Face Models", - "url": "https://huggingface.co/models", - "type": "article" - } - ] + "meta-llama@OkYO-aSPiuVYuLXHswBCn.md": { + "title": "Meta Llama", + "description": "", + "links": [] }, - "n-Ud2dXkqIzK37jlKItN4": { - "title": "Mistral AI", - "description": "Mistral AI is a company focused on developing open-weight, large language models (LLMs) to provide high-performance AI solutions. Mistral aims to create models that are both efficient and versatile, making them suitable for a wide range of natural language processing tasks, including text generation, translation, and summarization. By releasing open-weight models, Mistral promotes transparency and accessibility, allowing developers to customize and deploy AI solutions more flexibly compared to proprietary models.\n\nLearn more from the resources:", - "links": [ - { - "title": "Mistral AI", - "url": "https://mistral.ai/", - "type": "article" - }, - { - "title": "Mistral AI: The Gen AI Start-up you did not know existed", - "url": "https://www.youtube.com/watch?v=vzrRGd18tAg", - "type": "video" - } - ] + "mistral@n-Ud2dXkqIzK37jlKItN4.md": { + "title": "Mistral", + "description": "", + "links": [] }, "a7qsvoauFe5u953I699ps": { "title": "Cohere", @@ -463,148 +236,49 @@ "title": "Cohere", "url": "https://cohere.com/", "type": "article" - }, - { - "title": "What Does Cohere Do?", - "url": "https://medium.com/geekculture/what-does-cohere-do-cdadf6d70435", - "type": "article" - } - ] - }, - "5ShWZl1QUqPwO-NRGN85V": { - "title": "OpenAI Models", - "description": "OpenAI provides a variety of models designed for diverse tasks. GPT models like GPT-3 and GPT-4 handle text generation, conversation, and translation, offering context-aware responses, while Codex specializes in generating and debugging code across multiple languages. DALL-E creates images from text descriptions, supporting applications in design and content creation, and Whisper is a speech recognition model that converts spoken language to text for transcription and voice-to-text tasks.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Models Overview", - "url": "https://platform.openai.com/docs/models", - "type": "article" - } - ] - }, - "zdeuA4GbdBl2DwKgiOA4G": { - "title": "OpenAI API", - "description": "The OpenAI API provides access to powerful AI models like GPT, Codex, DALL-E, and Whisper, enabling developers to integrate capabilities such as text generation, code assistance, image creation, and speech recognition into their applications via a simple, scalable interface.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI API", - "url": "https://openai.com/api/", - "type": "article" - } - ] - }, - "_bPTciEA1GT1JwfXim19z": { - "title": "Chat Completions API", - "description": "The OpenAI Chat Completions API is a powerful interface that allows developers to integrate conversational AI into applications by utilizing models like GPT-3.5 and GPT-4. It is designed to manage multi-turn conversations, keeping context across interactions, making it ideal for chatbots, virtual assistants, and interactive AI systems. With the API, users can structure conversations by providing messages in a specific format, where each message has a role (e.g., \"system\" to guide the model, \"user\" for input, and \"assistant\" for responses).\n\nLearn more from the following resources:", - "links": [ - { - "title": "Create Chat Completions", - "url": "https://platform.openai.com/docs/api-reference/chat/create", - "type": "article" - }, - { - "title": "Getting Start with Chat Completions API", - "url": "https://medium.com/the-ai-archives/getting-started-with-openais-chat-completions-api-in-2024-462aae00bf0a", - "type": "article" - } - ] - }, - "9-5DYeOnKJq9XvEMWP45A": { - "title": "Writing Prompts", - "description": "Prompts for the OpenAI API are carefully crafted inputs designed to guide the language model in generating specific, high-quality content. These prompts can be used to direct the model to create stories, articles, dialogue, or even detailed responses on particular topics. Effective prompts set clear expectations by providing context, specifying the format, or including examples, such as \"Write a short sci-fi story about a future where humans can communicate with animals,\" or \"Generate a detailed summary of the key benefits of using renewable energy.\" Well-designed prompts help ensure that the API produces coherent, relevant, and creative outputs, making it easier to achieve desired results across various applications.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Visit Dedicated Prompt Engineering Roadmap", - "url": "https://roadmap.sh/prompt-engineering", - "type": "article" - }, - { - "title": "How to Write AI prompts", - "url": "https://www.descript.com/blog/article/how-to-write-ai-prompts", - "type": "article" - }, - { - "title": "Prompt Engineering Guide", - "url": "https://www.promptingguide.ai/", - "type": "article" - } - ] - }, - "nyBgEHvUhwF-NANMwkRJW": { - "title": "Open AI Playground", - "description": "The OpenAI Playground is an interactive web interface that allows users to experiment with OpenAI's language models, such as GPT-3 and GPT-4, without needing to write code. It provides a user-friendly environment where you can input prompts, adjust parameters like temperature and token limits, and see how the models generate responses in real-time. The Playground helps users test different use cases, from text generation to question answering, and refine prompts for better outputs. It's a valuable tool for exploring the capabilities of OpenAI models, prototyping ideas, and understanding how the models behave before integrating them into applications.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Playground", - "url": "https://platform.openai.com/playground/chat", - "type": "article" - }, - { - "title": "How to Use OpenAi Playground Like a Pro", - "url": "https://www.youtube.com/watch?v=PLxpvtODiqs", - "type": "video" - } - ] - }, - "15XOFdVp0IC-kLYPXUJWh": { - "title": "Fine-tuning", - "description": "Fine-tuning the OpenAI API involves adapting pre-trained models, such as GPT, to specific use cases by training them on custom datasets. This process allows you to refine the model's behavior and improve its performance on specialized tasks, like generating domain-specific text or following particular patterns. By providing labeled examples of the desired input-output pairs, you guide the model to better understand and predict the appropriate responses for your use case.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Fine-tuning Documentation", - "url": "https://platform.openai.com/docs/guides/fine-tuning", - "type": "article" - }, - { - "title": "Fine-tuning ChatGPT with OpenAI Tutorial", - "url": "https://www.youtube.com/watch?v=VVKcSf6r3CM", - "type": "video" - } - ] - }, - "qzvp6YxWDiGakA2mtspfh": { - "title": "Maximum Tokens", - "description": "The OpenAI API has different maximum token limits depending on the model being used. For instance, GPT-3 has a limit of 4,096 tokens, while GPT-4 can support larger inputs, with some versions allowing up to 8,192 tokens, and extended versions reaching up to 32,768 tokens. Tokens include both the input text and the generated output, so longer inputs mean less space for responses. Managing token limits is crucial to ensure the model can handle the entire input and still generate a complete response, especially for tasks involving lengthy documents or multi-turn conversations.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Maximum Tokens", - "url": "https://platform.openai.com/docs/guides/rate-limits", - "type": "article" - }, - { - "title": "The Ins and Outs of GPT Token Limits", - "url": "https://www.supernormal.com/blog/gpt-token-limits", - "type": "article" - } - ] - }, - "FjV3oD7G2Ocq5HhUC17iH": { - "title": "Token Counting", - "description": "Token counting refers to tracking the number of tokens processed during interactions with language models, including both input and output text. Tokens are units of text that can be as short as a single character or as long as a word, and models like GPT process text by splitting it into these tokens. Knowing how many tokens are used is crucial because the API has token limits (e.g., 4,096 for GPT-3 and up to 32,768 for some versions of GPT-4), and costs are typically calculated based on the total number of tokens processed.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Tokenizer Tool", - "url": "https://platform.openai.com/tokenizer", - "type": "article" - }, - { - "title": "How to count tokens with Tiktoken", - "url": "https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken", - "type": "article" - } - ] - }, - "DZPM9zjCbYYWBPLmQImxQ": { - "title": "Pricing Considerations", - "description": "When using the OpenAI API, pricing considerations depend on factors like the model type, usage volume, and specific features utilized. Different models, such as GPT-3.5, GPT-4, or DALL-E, have varying cost structures based on the complexity of the model and the number of tokens processed (inputs and outputs). For cost efficiency, you should optimize prompt design, monitor usage, and consider rate limits or volume discounts offered by OpenAI for high usage.", - "links": [ + }, { - "title": "OpenAI API Pricing", - "url": "https://openai.com/api/pricing/", + "title": "What Does Cohere Do?", + "url": "https://medium.com/geekculture/what-does-cohere-do-cdadf6d70435", "type": "article" } ] }, + "how-llms-work@zdeuA4GbdBl2DwKgiOA4G.md": { + "title": "How LLMs Work", + "description": "", + "links": [] + }, + "react@Waox7xR_yUeSnOtQFzU4c.md": { + "title": "ReAct", + "description": "", + "links": [] + }, + "cot@nyBgEHvUhwF-NANMwkRJW.md": { + "title": "CoT", + "description": "", + "links": [] + }, + "zero-shot@15XOFdVp0IC-kLYPXUJWh.md": { + "title": "Zero-Shot", + "description": "", + "links": [] + }, + "top-k@qzvp6YxWDiGakA2mtspfh.md": { + "title": "Top-K", + "description": "", + "links": [] + }, + "top-p@FjV3oD7G2Ocq5HhUC17iH.md": { + "title": "Top-P", + "description": "", + "links": [] + }, + "few-shot@DZPM9zjCbYYWBPLmQImxQ.md": { + "title": "Few-Shot", + "description": "", + "links": [] + }, "8ndKHDJgL_gYwaXC7XMer": { "title": "AI Safety and Ethics", "description": "AI safety and ethics involve establishing guidelines and best practices to ensure that artificial intelligence systems are developed, deployed, and used in a manner that prioritizes human well-being, fairness, and transparency. This includes addressing risks such as bias, privacy violations, unintended consequences, and ensuring that AI operates reliably and predictably, even in complex environments. Ethical considerations focus on promoting accountability, avoiding discrimination, and aligning AI systems with human values and societal norms. Frameworks like explainability, human-in-the-loop design, and robust monitoring are often used to build systems that not only achieve technical objectives but also uphold ethical standards and mitigate potential harms.\n\nLearn more from the following resources:", @@ -690,21 +364,10 @@ } ] }, - "ljZLa3yjQpegiZWwtnn_q": { - "title": "OpenAI Moderation API", - "description": "The OpenAI Moderation API helps detect and filter harmful content by analyzing text for issues like hate speech, violence, self-harm, and adult content. It uses machine learning models to identify inappropriate or unsafe language, allowing developers to create safer online environments and maintain community guidelines. The API is designed to be integrated into applications, websites, and platforms, providing real-time content moderation to reduce the spread of harmful or offensive material.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Moderation", - "url": "https://platform.openai.com/docs/guides/moderation", - "type": "article" - }, - { - "title": "How to user the moderation API", - "url": "https://cookbook.openai.com/examples/how_to_use_moderation", - "type": "article" - } - ] + "content-moderation-apis@ljZLa3yjQpegiZWwtnn_q.md": { + "title": "Content Moderation APIs", + "description": "", + "links": [] }, "4Q5x2VCXedAWISBXUIyin": { "title": "Adding end-user IDs in prompts", @@ -760,74 +423,15 @@ } ] }, - "a_3SabylVqzzOyw3tZN5f": { - "title": "OpenSource AI", - "description": "Open-source AI refers to AI models, tools, and frameworks that are freely available for anyone to use, modify, and distribute. Examples include TensorFlow, PyTorch, and models like BERT and Stable Diffusion. Open-source AI fosters transparency, collaboration, and innovation by allowing developers to inspect code, adapt models for specific needs, and contribute improvements. This approach accelerates the development of AI technologies, enabling faster experimentation and reducing dependency on proprietary solutions.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Open Source AI Is the Path Forward", - "url": "https://about.fb.com/news/2024/07/open-source-ai-is-the-path-forward/", - "type": "article" - }, - { - "title": "Should You Use Open Source Large Language Models?", - "url": "https://www.youtube.com/watch?v=y9k-U9AuDeM", - "type": "video" - } - ] - }, - "RBwGsq9DngUsl8PrrCbqx": { - "title": "Open vs Closed Source Models", - "description": "Open-source models are freely available for customization and collaboration, promoting transparency and flexibility, while closed-source models are proprietary, offering ease of use but limiting modification and transparency.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI vs. Open Source LLM", - "url": "https://ubiops.com/openai-vs-open-source-llm/", - "type": "article" - }, - { - "title": "Open-Source vs Closed-Source LLMs", - "url": "https://www.youtube.com/watch?v=710PDpuLwOc", - "type": "video" - } - ] - }, - "97eu-XxYUH9pYbD_KjAtA": { - "title": "Popular Open Source Models", - "description": "Open-source large language models (LLMs) are models whose source code and architecture are publicly available for use, modification, and distribution. They are built using machine learning algorithms that process and generate human-like text, and being open-source, they promote transparency, innovation, and community collaboration in their development and application.\n\nLearn more from the following resources:", - "links": [ - { - "title": "The Best Large Language Models (LLMs) in 2024", - "url": "https://zapier.com/blog/best-llm/", - "type": "article" - }, - { - "title": "8 Top Open-Source LLMs for 2024 and Their Uses", - "url": "https://www.datacamp.com/blog/top-open-source-llms", - "type": "article" - } - ] + "lm-studio@a_3SabylVqzzOyw3tZN5f.md": { + "title": "LM Studio", + "description": "", + "links": [] }, - "v99C5Bml2a6148LCJ9gy9": { - "title": "Hugging Face", - "description": "Hugging Face is a leading AI company and open-source platform that provides tools, models, and libraries for natural language processing (NLP), computer vision, and other machine learning tasks. It is best known for its \"Transformers\" library, which simplifies the use of pre-trained models like BERT, GPT, T5, and CLIP, making them accessible for tasks such as text classification, translation, summarization, and image recognition.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Hugging Face Official Video Course", - "url": "https://www.youtube.com/watch?v=00GKzGyWFEs&list=PLo2EIpI_JMQvWfQndUesu0nPBAtZ9gP1o", - "type": "course" - }, - { - "title": "Hugging Face", - "url": "https://huggingface.co", - "type": "article" - }, - { - "title": "What is Hugging Face? - Machine Learning Hub Explained", - "url": "https://www.youtube.com/watch?v=1AUjKfpRZVo", - "type": "video" - } - ] + "closed-vs-open-source-models@RBwGsq9DngUsl8PrrCbqx.md": { + "title": "Closed vs Open Source Models", + "description": "", + "links": [] }, "YLOdOvLXa5Fa7_mmuvKEi": { "title": "Hugging Face Hub", @@ -845,42 +449,10 @@ } ] }, - "YKIPOiSj_FNtg0h8uaSMq": { - "title": "Hugging Face Tasks", - "description": "Hugging Face supports text classification, named entity recognition, question answering, summarization, and translation. It also extends to multimodal tasks that involve both text and images, such as visual question answering (VQA) and image-text matching. Each task is done by various pre-trained models that can be easily accessed and fine-tuned through the Hugging Face library.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Task and Model", - "url": "https://huggingface.co/learn/computer-vision-course/en/unit4/multimodal-models/tasks-models-part1", - "type": "article" - }, - { - "title": "Task Summary", - "url": "https://huggingface.co/docs/transformers/v4.14.1/en/task_summary", - "type": "article" - }, - { - "title": "Task Manager", - "url": "https://huggingface.co/docs/optimum/en/exporters/task_manager", - "type": "article" - } - ] - }, - "3kRTzlLNBnXdTsAEXVu_M": { - "title": "Inference SDK", - "description": "The Hugging Face Inference SDK is a powerful tool that allows developers to easily integrate and run inference on large language models hosted on the Hugging Face Hub. By using the `InferenceClient`, users can make API calls to various models for tasks such as text generation, image creation, and more. The SDK supports both synchronous and asynchronous operations thus compatible with existing workflows.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Inference", - "url": "https://huggingface.co/docs/huggingface_hub/en/package_reference/inference_client", - "type": "article" - }, - { - "title": "Endpoint Setup", - "url": "https://www.npmjs.com/package/@huggingface/inference", - "type": "article" - } - ] + "hugging-face-inference-sdk@3kRTzlLNBnXdTsAEXVu_M.md": { + "title": "Hugging Face Inference SDK", + "description": "", + "links": [] }, "bGLrbpxKgENe2xS1eQtdh": { "title": "Transformers.js", @@ -919,42 +491,15 @@ } ] }, - "ro3vY_sp6xMQ-hfzO-rc1": { - "title": "Ollama Models", - "description": "Ollama provides a collection of large language models (LLMs) designed to run locally on personal devices, enabling privacy-focused and efficient AI applications without relying on cloud services. These models can perform tasks like text generation, translation, summarization, and question answering, similar to popular models like GPT. Ollama emphasizes ease of use, offering models that are optimized for lower resource consumption, making it possible to deploy AI capabilities directly on laptops or edge devices.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Ollama Model Library", - "url": "https://ollama.com/library", - "type": "article" - }, - { - "title": "What are the different types of models? Ollama Course", - "url": "https://www.youtube.com/watch?v=f4tXwCNP1Ac", - "type": "video" - } - ] + "openai-response-api@ro3vY_sp6xMQ-hfzO-rc1.md": { + "title": "OpenAI Response API", + "description": "", + "links": [] }, - "TsG_I7FL-cOCSw8gvZH3r": { - "title": "Ollama SDK", - "description": "The Ollama SDK is a community-driven tool that allows developers to integrate and run large language models (LLMs) locally through a simple API. Enabling users to easily import the Ollama provider and create customized instances for various models, such as Llama 2 and Mistral. The SDK supports functionalities like `text generation` and `embeddings`, making it versatile for applications ranging from `chatbots` to `content generation`. Also Ollama SDK enhances privacy and control over data while offering seamless integration with existing workflows.\n\nLearn more from the following resources:", - "links": [ - { - "title": "SDK Provider", - "url": "https://sdk.vercel.ai/providers/community-providers/ollama", - "type": "article" - }, - { - "title": "Beginner's Guide", - "url": "https://dev.to/jayantaadhikary/using-the-ollama-api-to-run-llms-and-generate-responses-locally-18b7", - "type": "article" - }, - { - "title": "Setup", - "url": "https://klu.ai/glossary/ollama", - "type": "article" - } - ] + "google-gemini-api@TsG_I7FL-cOCSw8gvZH3r.md": { + "title": "Google Gemini APi", + "description": "", + "links": [] }, "--ig0Ume_BnXb9K2U7HJN": { "title": "What are Embeddings", @@ -1047,48 +592,20 @@ } ] }, - "y0qD5Kb4Pf-ymIwW-tvhX": { - "title": "Open AI Embedding Models", - "description": "OpenAI's embedding models convert text into dense vector representations that capture semantic meaning, allowing for efficient similarity searches, clustering, and recommendations. These models are commonly used for tasks like semantic search, where similar phrases are mapped to nearby points in a vector space, and for building recommendation systems by comparing embeddings to find related content. OpenAI's embedding models offer versatility, supporting a range of applications from document retrieval to content classification, and can be easily integrated through the OpenAI API for scalable and efficient deployment.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Embedding Models", - "url": "https://platform.openai.com/docs/guides/embeddings/embedding-models", - "type": "article" - }, - { - "title": "OpenAI Embeddings Explained in 5 Minutes", - "url": "https://www.youtube.com/watch?v=8kJStTRuMcs", - "type": "video" - } - ] + "cohere@y0qD5Kb4Pf-ymIwW-tvhX.md": { + "title": "Cohere", + "description": "", + "links": [] }, - "4GArjDYipit4SLqKZAWDf": { - "title": "Pricing Considerations", - "description": "The pricing for the OpenAI Embedding API is based on the number of tokens processed and the specific embedding model used. Costs are determined by the total tokens needed to generate embeddings, so longer texts will result in higher charges. To manage costs, developers can optimize by shortening inputs or batching requests. Additionally, selecting the right embedding model for your performance and budget requirements, along with monitoring token usage, can help control expenses.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "OpenAI Pricing", - "url": "https://openai.com/api/pricing/", - "type": "article" - } - ] + "gemini-embedding@4GArjDYipit4SLqKZAWDf.md": { + "title": "Gemini Embedding", + "description": "", + "links": [] }, - "apVYIV4EyejPft25oAvdI": { - "title": "Open-Source Embeddings", - "description": "Open-source embeddings are pre-trained vector representations of data, usually text, that are freely available for use and modification. These embeddings capture semantic meanings, making them useful for tasks like semantic search, text classification, and clustering. Examples include Word2Vec, GloVe, and FastText, which represent words as vectors based on their context in large corpora, and more advanced models like Sentence-BERT and CLIP that provide embeddings for sentences and images. Open-source embeddings allow developers to leverage pre-trained models without starting from scratch, enabling faster development and experimentation in natural language processing and other AI applications.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Embeddings", - "url": "https://platform.openai.com/docs/guides/embeddings", - "type": "article" - }, - { - "title": "A Guide to Open-Source Embedding Models", - "url": "https://www.bentoml.com/blog/a-guide-to-open-source-embedding-models", - "type": "article" - } - ] + "jina@apVYIV4EyejPft25oAvdI.md": { + "title": "Jina", + "description": "", + "links": [] }, "ZV_V6sqOnRodgaw4mzokC": { "title": "Sentence Transformers", @@ -1323,21 +840,10 @@ } ] }, - "lVhWhZGR558O-ljHobxIi": { - "title": "RAG & Implementation", - "description": "Retrieval-Augmented Generation (RAG) combines information retrieval with language generation to produce more accurate, context-aware responses. It uses two components: a retriever, which searches a database to find relevant information, and a generator, which crafts a response based on the retrieved data. Implementing RAG involves using a retrieval model (e.g., embeddings and vector search) alongside a generative language model (like GPT). The process starts by converting a query into embeddings, retrieving relevant documents from a vector database, and feeding them to the language model, which then generates a coherent, informed response. This approach grounds outputs in real-world data, resulting in more reliable and detailed answers.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is RAG?", - "url": "https://aws.amazon.com/what-is/retrieval-augmented-generation/", - "type": "article" - }, - { - "title": "What is Retrieval-Augmented Generation? IBM", - "url": "https://www.youtube.com/watch?v=T-D1OfcDW1M", - "type": "video" - } - ] + "what-are-rags@lVhWhZGR558O-ljHobxIi.md": { + "title": "What are RAGs?", + "description": "", + "links": [] }, "GCn4LGNEtPI0NWYAZCRE-": { "title": "RAG Usecases", @@ -1428,150 +934,90 @@ "type": "article" }, { - "title": "Retrieval Augmented Generation (RAG) with Vector Databases: Expanding AI Capabilities", - "url": "https://objectbox.io/retrieval-augmented-generation-rag-with-vector-databases-expanding-ai-capabilities/", - "type": "article" - } - ] - }, - "OCGCzHQM2LQyUWmiqe6E0": { - "title": "Retrieval Process", - "description": "The retrieval process in Retrieval-Augmented Generation (RAG) involves finding relevant information from a large dataset or knowledge base to support the generation of accurate, context-aware responses. When a query is received, the system first converts it into a vector (embedding) and uses this vector to search a database of pre-indexed embeddings, identifying the most similar or relevant data points. Techniques like approximate nearest neighbor (ANN) search are often used to speed up this process.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is Retrieval-Augmented Generation (RAG)?", - "url": "https://cloud.google.com/use-cases/retrieval-augmented-generation", - "type": "article" - }, - { - "title": "What Is Retrieval-Augmented Generation, aka RAG?", - "url": "https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/", - "type": "article" - } - ] - }, - "2jJnS9vRYhaS69d6OxrMh": { - "title": "Generation", - "description": "Generation refers to the process where a generative language model, such as GPT, creates a response based on the information retrieved during the retrieval phase. After relevant documents or data snippets are identified using embeddings, they are passed to the generative model, which uses this information to produce coherent, context-aware, and informative responses. The retrieved content helps the model stay grounded and factual, enhancing its ability to answer questions, provide summaries, or engage in dialogue by combining retrieved knowledge with its natural language generation capabilities. This synergy between retrieval and generation makes RAG systems effective for tasks that require detailed, accurate, and contextually relevant outputs.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is RAG (Retrieval-Augmented Generation)?", - "url": "https://aws.amazon.com/what-is/retrieval-augmented-generation/", - "type": "article" - }, - { - "title": "Retrieval Augmented Generation (RAG) Explained in 8 Minutes!", - "url": "https://www.youtube.com/watch?v=HREbdmOSQ18", - "type": "video" - } - ] - }, - "WZVW8FQu6LyspSKm1C_sl": { - "title": "Using SDKs Directly", - "description": "While tools like Langchain and LlamaIndex make it easy to implement RAG, you don't have to necessarily learn and use them. If you know about the different steps of implementing RAG you can simply do it all yourself e.g. do the chunking using `@langchain/textsplitters` package, create embeddings using any LLM e.g. use OpenAI Embedding API through their SDK, save the embeddings to any vector database e.g. if you are using Supabase Vector DB, you can use their SDK and similarly you can use the relevant SDKs for the rest of the steps as well.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Langchain Text Splitter Package", - "url": "https://www.npmjs.com/package/@langchain/textsplitters", - "type": "article" - }, - { - "title": "OpenAI Embedding API", - "url": "https://platform.openai.com/docs/guides/embeddings", - "type": "article" - }, - { - "title": "Supabase AI & Vector Documentation", - "url": "https://supabase.com/docs/guides/ai", - "type": "article" - } - ] - }, - "ebXXEhNRROjbbof-Gym4p": { - "title": "Langchain", - "description": "LangChain is a development framework that simplifies building applications powered by language models, enabling seamless integration of multiple AI models and data sources. It focuses on creating chains, or sequences, of operations where language models can interact with databases, APIs, and other models to perform complex tasks. LangChain offers tools for prompt management, data retrieval, and workflow orchestration, making it easier to develop robust, scalable applications like chatbots, automated data analysis, and multi-step reasoning systems.\n\nLearn more from the following resources:", - "links": [ - { - "title": "LangChain", - "url": "https://www.langchain.com/", - "type": "article" - }, - { - "title": "What is LangChain?", - "url": "https://www.youtube.com/watch?v=1bUy-1hGZpI", - "type": "video" - } - ] - }, - "d0ontCII8KI8wfP-8Y45R": { - "title": "Llama Index", - "description": "LlamaIndex, formerly known as GPT Index, is a tool designed to facilitate the integration of large language models (LLMs) with structured and unstructured data sources. It acts as a data framework that helps developers build retrieval-augmented generation (RAG) applications by indexing various types of data, such as documents, databases, and APIs, enabling LLMs to query and retrieve relevant information efficiently.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Llama Index", - "url": "https://docs.llamaindex.ai/en/stable/", - "type": "article" - }, - { - "title": "Introduction to LlamaIndex with Python (2024)", - "url": "https://www.youtube.com/watch?v=cCyYGYyCka4", - "type": "video" + "title": "Retrieval Augmented Generation (RAG) with Vector Databases: Expanding AI Capabilities", + "url": "https://objectbox.io/retrieval-augmented-generation-rag-with-vector-databases-expanding-ai-capabilities/", + "type": "article" } ] }, - "eOqCBgBTKM8CmY3nsWjre": { - "title": "Open AI Assistant API", - "description": "The OpenAI Assistant API enables developers to create advanced conversational systems using models like GPT-4. It supports multi-turn conversations, allowing the AI to maintain context across exchanges, which is ideal for chatbots, virtual assistants, and interactive applications. Developers can customize interactions by defining roles, such as system, user, and assistant, to guide the assistant's behavior. With features like temperature control, token limits, and stop sequences, the API offers flexibility to ensure responses are relevant, safe, and tailored to specific use cases.\n\nLearn more from the following resources:", + "OCGCzHQM2LQyUWmiqe6E0": { + "title": "Retrieval Process", + "description": "The retrieval process in Retrieval-Augmented Generation (RAG) involves finding relevant information from a large dataset or knowledge base to support the generation of accurate, context-aware responses. When a query is received, the system first converts it into a vector (embedding) and uses this vector to search a database of pre-indexed embeddings, identifying the most similar or relevant data points. Techniques like approximate nearest neighbor (ANN) search are often used to speed up this process.\n\nLearn more from the following resources:", "links": [ { - "title": "OpenAI Assistants API – Course for Beginners", - "url": "https://www.youtube.com/watch?v=qHPonmSX4Ms", - "type": "course" + "title": "What is Retrieval-Augmented Generation (RAG)?", + "url": "https://cloud.google.com/use-cases/retrieval-augmented-generation", + "type": "article" }, { - "title": "Assistants API", - "url": "https://platform.openai.com/docs/assistants/overview", + "title": "What Is Retrieval-Augmented Generation, aka RAG?", + "url": "https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/", "type": "article" } ] }, - "c0RPhpD00VIUgF4HJgN2T": { - "title": "Replicate", - "description": "Replicate is a platform that allows developers to run machine learning models in the cloud without needing to manage infrastructure. It provides a simple API for deploying and scaling models, making it easy to integrate AI capabilities like image generation, text processing, and more into applications. Users can select from a library of pre-trained models or deploy their own, with the platform handling tasks like scaling, monitoring, and versioning.\n\nLearn more from the following resources:", + "2jJnS9vRYhaS69d6OxrMh": { + "title": "Generation", + "description": "Generation refers to the process where a generative language model, such as GPT, creates a response based on the information retrieved during the retrieval phase. After relevant documents or data snippets are identified using embeddings, they are passed to the generative model, which uses this information to produce coherent, context-aware, and informative responses. The retrieved content helps the model stay grounded and factual, enhancing its ability to answer questions, provide summaries, or engage in dialogue by combining retrieved knowledge with its natural language generation capabilities. This synergy between retrieval and generation makes RAG systems effective for tasks that require detailed, accurate, and contextually relevant outputs.\n\nLearn more from the following resources:", "links": [ { - "title": "Replicate", - "url": "https://replicate.com/", + "title": "What is RAG (Retrieval-Augmented Generation)?", + "url": "https://aws.amazon.com/what-is/retrieval-augmented-generation/", "type": "article" }, { - "title": "Replicate.com Beginners Tutorial", - "url": "https://www.youtube.com/watch?v=y0_GE5ErqY8", + "title": "Retrieval Augmented Generation (RAG) Explained in 8 Minutes!", + "url": "https://www.youtube.com/watch?v=HREbdmOSQ18", "type": "video" } ] }, - "AeHkNU-uJ_gBdo5-xdpEu": { - "title": "AI Agents", - "description": "In AI engineering, \"agents\" refer to autonomous systems or components that can perceive their environment, make decisions, and take actions to achieve specific goals. Agents often interact with external systems, users, or other agents to carry out complex tasks. They can vary in complexity, from simple rule-based bots to sophisticated AI-powered agents that leverage machine learning models, natural language processing, and reinforcement learning.\n\nVisit the following resources to learn more:", + "WZVW8FQu6LyspSKm1C_sl": { + "title": "Using SDKs Directly", + "description": "While tools like Langchain and LlamaIndex make it easy to implement RAG, you don't have to necessarily learn and use them. If you know about the different steps of implementing RAG you can simply do it all yourself e.g. do the chunking using `@langchain/textsplitters` package, create embeddings using any LLM e.g. use OpenAI Embedding API through their SDK, save the embeddings to any vector database e.g. if you are using Supabase Vector DB, you can use their SDK and similarly you can use the relevant SDKs for the rest of the steps as well.\n\nLearn more from the following resources:", "links": [ { - "title": "Building an AI Agent Tutorial - LangChain", - "url": "https://python.langchain.com/docs/tutorials/agents/", + "title": "Langchain Text Splitter Package", + "url": "https://www.npmjs.com/package/@langchain/textsplitters", "type": "article" }, { - "title": "AI agents and their types", - "url": "https://play.ht/blog/ai-agents-use-cases/", + "title": "OpenAI Embedding API", + "url": "https://platform.openai.com/docs/guides/embeddings", "type": "article" }, { - "title": "The Complete Guide to Building AI Agents for Beginners", - "url": "https://youtu.be/MOyl58VF2ak?si=-QjRD_5y3iViprJX", - "type": "video" + "title": "Supabase AI & Vector Documentation", + "url": "https://supabase.com/docs/guides/ai", + "type": "article" } ] }, + "langchain@jM-Jbo0wUilhVY830hetJ.md": { + "title": "Langchain", + "description": "", + "links": [] + }, + "llama-index@JT4mBXOjvvrUnynA7yrqt.md": { + "title": "Llama Index", + "description": "", + "links": [] + }, + "tools--function-calling@eOqCBgBTKM8CmY3nsWjre.md": { + "title": "Tools & Function Calling", + "description": "", + "links": [] + }, + "deepseek@UGYYh2W1XnnbgYNY8L8Hb.md": { + "title": "DeepSeek", + "description": "", + "links": [] + }, + "ai-agents@4_ap0rD9Gl6Ep_4jMfPpG.md": { + "title": "AI Agents", + "description": "", + "links": [] + }, "778HsQzTuJ_3c9OSn5DmH": { "title": "Agents Usecases", "description": "AI Agents have a variety of usecases ranging from customer support, workflow automation, cybersecurity, finance, marketing and sales, and more.\n\nVisit the following resources to learn more:", @@ -1625,37 +1071,15 @@ } ] }, - "Sm0Ne5Nx72hcZCdAcC0C2": { - "title": "OpenAI Functions / Tools", - "description": "OpenAI Functions, also known as tools, enable developers to extend the capabilities of language models by integrating external APIs and functionalities, allowing the models to perform specific actions, fetch real-time data, or interact with other software systems. This feature enhances the model's utility by bridging it with services like web searches, databases, and custom business applications, enabling more dynamic and task-oriented responses.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Function Calling", - "url": "https://platform.openai.com/docs/guides/function-calling", - "type": "article" - }, - { - "title": "How does OpenAI Function Calling work?", - "url": "https://www.youtube.com/watch?v=Qor2VZoBib0", - "type": "video" - } - ] + "openai-agentkit--agent-sdk@Sm0Ne5Nx72hcZCdAcC0C2.md": { + "title": "OpenAI AgentKit & Agent SDK", + "description": "", + "links": [] }, - "mbp2NoL-VZ5hZIIblNBXt": { - "title": "OpenAI Assistant API", - "description": "The OpenAI Assistant API enables developers to create advanced conversational systems using models like GPT-4. It supports multi-turn conversations, allowing the AI to maintain context across exchanges, which is ideal for chatbots, virtual assistants, and interactive applications. Developers can customize interactions by defining roles, such as system, user, and assistant, to guide the assistant's behavior. With features like temperature control, token limits, and stop sequences, the API offers flexibility to ensure responses are relevant, safe, and tailored to specific use cases.\n\nLearn more from the following resources:", - "links": [ - { - "title": "OpenAI Assistants API – Course for Beginners", - "url": "https://www.youtube.com/watch?v=qHPonmSX4Ms", - "type": "course" - }, - { - "title": "Assistants API", - "url": "https://platform.openai.com/docs/assistants/overview", - "type": "article" - } - ] + "claude-agent-sdk@xXLyuUNrKEc32XLQxMjgT.md": { + "title": "Claude Agent SDK", + "description": "", + "links": [] }, "W7cKPt_UxcUgwp8J6hS4p": { "title": "Multimodal AI", @@ -1912,61 +1336,296 @@ } ] }, - "XcKeQfpTA5ITgdX51I4y-": { - "title": "AI Code Editors", - "description": "AI code editors are development tools that leverage artificial intelligence to assist software developers in writing, debugging, and optimizing code. These editors go beyond traditional syntax highlighting and code completion by incorporating machine learning models, natural language processing, and data analysis to understand code context, generate suggestions, and even automate portions of the software development process.\n\nVisit the following resources to learn more:", + "haystack@ebXXEhNRROjbbof-Gym4p.md": { + "title": "Haystack", + "description": "", + "links": [] + }, + "ragflow@d0ontCII8KI8wfP-8Y45R.md": { + "title": "RAGFlow", + "description": "", + "links": [] + }, + "model-context-protocol-mcp@AeHkNU-uJ_gBdo5-xdpEu.md": { + "title": "Model Context Protocol (MCP)", + "description": "", + "links": [] + }, + "mcp-host@MabZ9jOrSj539C5qZrVBd.md": { + "title": "MCP Host", + "description": "", + "links": [] + }, + "mcp-server@8Xkd88EjX3GE_9DWQhr7G.md": { + "title": "MCP Server", + "description": "", + "links": [] + }, + "mcp-client@po0fIZYaFhRbNlza7sB37.md": { + "title": "MCP Client", + "description": "", + "links": [] + }, + "data-layer@Z0920V57_ziDhXbQJMN9O.md": { + "title": "Data Layer", + "description": "", + "links": [] + }, + "transport-layer@o4gHDZ5p9lyeHuCAPvAKz.md": { + "title": "Transport Layer", + "description": "", + "links": [] + }, + "building-an-mcp-server@oLGfKjcqBzJ3vd6Cg-T1B.md": { + "title": "Building an MCP Server", + "description": "", + "links": [] + }, + "building-an-mcp-client@0Rk0rCbmRFJT2GKwUibQS.md": { + "title": "Building an MCP Client", + "description": "", + "links": [] + }, + "connect-to-local-server@H-G93SsEgsA_NGL_v4hPv.md": { + "title": "Connect to Local Server", + "description": "", + "links": [] + }, + "connect-to-remote-server@2t4uINxmzfx8FUF-_i_2B.md": { + "title": "Connect to Remote Server", + "description": "", + "links": [] + }, + "vertex-ai-agent-builder@AxzTGDCC2Ftp4G66U4Uqr.md": { + "title": "Vertex AI Agent Builder", + "description": "", + "links": [] + }, + "google-adk@mbp2NoL-VZ5hZIIblNBXt.md": { + "title": "Google ADK", + "description": "", + "links": [] + }, + "fine-tuning@zTvsCNS3ucsZmvy1tHyeI.md": { + "title": "Fine-tuning", + "description": "", + "links": [] + }, + "context-engineering@kCiHNaZ9CgnS9uksIQ_SY.md": { + "title": "Context Engineering", + "description": "", + "links": [] + }, + "prompt-vs-context-engineering@ozrR8IvjNFbHd44kZrExX.md": { + "title": "Prompt vs Context Engineering", + "description": "", + "links": [] + }, + "input-format@LCHse57rXf3sl8ml1ow0T.md": { + "title": "Input Format", + "description": "", + "links": [] + }, + "system-prompting@S46Vaq8hYq6Ee1Id_-fSQ.md": { + "title": "System Prompting", + "description": "", + "links": [] + }, + "context@9oUpeEnaMWctQLTobbmY7.md": { + "title": "Context", + "description": "", + "links": [] + }, + "role--behavior@N3TzWYxU0jgv1l99Ts58n.md": { + "title": "Role & Behavior", + "description": "", + "links": [] + }, + "constrains@PT3uDiUjiKhO8laOkCmgP.md": { + "title": "Constrains", + "description": "", + "links": [] + }, + "structured-output@zqhmLzHsmDlrTFVHzhq6-.md": { + "title": "Structured Output", + "description": "", + "links": [] + }, + "function-calling@wFfjHkGLrcCyLyXV4BiFM.md": { + "title": "Function Calling", + "description": "", + "links": [] + }, + "prompt-caching@bqqY0gsZkBpcHMZw1hcZ5.md": { + "title": "Prompt Caching", + "description": "", + "links": [] + }, + "streaming-responses@MUDBYjR7uCUZQ-kQxi2K_.md": { + "title": "Streaming Responses", + "description": "", + "links": [] + }, + "type-of-models@2X0NDcq2ojBJ0RxY_U6bl.md": { + "title": "Type of Models", + "description": "", + "links": [] + }, + "self-hosted-models@_qqITQ8O0Q0RWUeZsUXnY.md": { + "title": "Self-Hosted Models", + "description": "", + "links": [] + }, + "repetition-penalties@0_pa739kMPWHfuSQV-VO7.md": { + "title": "Repetition Penalties", + "description": "", + "links": [] + }, + "choosing-the-right-model@zeWoTtAFEpVXDQzWNsha4.md": { + "title": "Choosing the Right Model ", + "description": "", + "links": [] + }, + "gemma2@MNtaY1_kOJHeoWuM-abb4.md": { + "title": "Gemma2", + "description": "", + "links": [] + }, + "qwen@c0RPhpD00VIUgF4HJgN2T.md": { + "title": "Qwen", + "description": "", + "links": [] + }, + "openrouter@1GlpMjmdAWor0X_BnISGg.md": { + "title": "OpenRouter", + "description": "", + "links": [] + }, + "embedding-models@fr0UOXlVVctkk1K84Z8Of.md": { + "title": "Embedding Models", + "description": "", + "links": [] + }, + "claude-messages-api@nxwMVla0-PNG8nlocKK5v.md": { + "title": "Claude Messages API", + "description": "", + "links": [] + }, + "openai-compatible-apis@vnXtUupJUlyU_uCbZBbnk.md": { + "title": "OpenAI-compatible APIs", + "description": "", + "links": [] + }, + "multi-agents@kG1bkF2oY21CJOm9zhdpn.md": { + "title": "Multi-agents", + "description": "", + "links": [] + }, + "YKIPOiSj_FNtg0h8uaSMq": { + "title": "Hugging Face Tasks", + "description": "Hugging Face supports text classification, named entity recognition, question answering, summarization, and translation. It also extends to multimodal tasks that involve both text and images, such as visual question answering (VQA) and image-text matching. Each task is done by various pre-trained models that can be easily accessed and fine-tuned through the Hugging Face library.\n\nLearn more from the following resources:", "links": [ { - "title": "Cursor - The AI Code Editor", - "url": "https://www.cursor.com/", - "type": "website" - }, - { - "title": "PearAI - The Open Source, Extendable AI Code Editor", - "url": "https://trypear.ai/", - "type": "website" - }, - { - "title": "Bolt - Prompt, run, edit, and deploy full-stack web apps", - "url": "https://bolt.new", - "type": "website" + "title": "Task and Model", + "url": "https://huggingface.co/learn/computer-vision-course/en/unit4/multimodal-models/tasks-models-part1", + "type": "article" }, { - "title": "Replit - Build Apps using AI", - "url": "https://replit.com/ai", - "type": "website" + "title": "Task Summary", + "url": "https://huggingface.co/docs/transformers/v4.14.1/en/task_summary", + "type": "article" }, { - "title": "v0 - Build Apps with AI", - "url": "https://v0.dev", - "type": "website" + "title": "Task Manager", + "url": "https://huggingface.co/docs/optimum/en/exporters/task_manager", + "type": "article" } ] }, - "TifVhqFm1zXNssA8QR3SM": { - "title": "Code Completion Tools", - "description": "Code completion tools are AI-powered development assistants designed to enhance productivity by automatically suggesting code snippets, functions, and entire blocks of code as developers type. These tools, such as GitHub Copilot and Tabnine, leverage machine learning models trained on vast code repositories to predict and generate contextually relevant code. They help reduce repetitive coding tasks, minimize errors, and accelerate the development process by offering real-time, intelligent suggestions.\n\nLearn more from the following resources:", + "XyEp6jnBSpCxMGwALnYfT": { + "title": "Embeddings", + "description": "Embeddings are dense, continuous vector representations of data, such as words, sentences, or images, in a lower-dimensional space. They capture the semantic relationships and patterns in the data, where similar items are placed closer together in the vector space. In machine learning, embeddings are used to convert complex data into numerical form that models can process more easily. For example, word embeddings represent words based on their meanings and contexts, allowing models to understand relationships like synonyms or analogies. Embeddings are widely used in tasks like natural language processing, recommendation systems, and image recognition to improve model performance and efficiency.\n\nLearn more from the following resources:", "links": [ { - "title": "GitHub Copilot", - "url": "https://github.com/features/copilot", - "type": "article" - }, - { - "title": "Codeium", - "url": "https://codeium.com/", + "title": "What are Embeddings in Machine Learning?", + "url": "https://www.cloudflare.com/en-gb/learning/ai/what-are-embeddings/", "type": "article" }, { - "title": "Supermaven", - "url": "https://supermaven.com/", + "title": "What is Embedding?", + "url": "https://www.ibm.com/topics/embedding", "type": "article" }, { - "title": "Tabnine", - "url": "https://www.tabnine.com/", - "type": "article" + "title": "What are Word Embeddings", + "url": "https://www.youtube.com/watch?v=wgfSDrqYMJ4", + "type": "video" } ] + }, + "claude-code@wr5ddjutC-fX_ixysTHaT.md": { + "title": "Claude Code", + "description": "", + "links": [] + }, + "gemini@hzeEo8COf2l07iu5EdlFo.md": { + "title": "Gemini", + "description": "", + "links": [] + }, + "codex@XY2l96sry3WyLzzo3KUeU.md": { + "title": "Codex", + "description": "", + "links": [] + }, + "windsurf@Xsl8mx6J182TxPPtNP471.md": { + "title": "Windsurf", + "description": "", + "links": [] + }, + "cursor@MWhoqhNnBaoeCdN_8i15k.md": { + "title": "Cursor", + "description": "", + "links": [] + }, + "replit@Ubk4GN0Z4XlDJ3EbRXdxg.md": { + "title": "Replit", + "description": "", + "links": [] + }, + "nanobanana-api@6y73FLjshnqxV8BTGUeiu.md": { + "title": "NanoBanana API", + "description": "", + "links": [] + }, + "sampling-parameters@LbB2PeytxRSuU07Bk0KlJ.md": { + "title": "Sampling Parameters", + "description": "", + "links": [] + }, + "temperature@_bPTciEA1GT1JwfXim19z.md": { + "title": "Temperature", + "description": "", + "links": [] + }, + "external-memory@KWjD4xEPhOOYS51dvRLd2.md": { + "title": "External Memory", + "description": "", + "links": [] + }, + "rag-and-dynamic-filters@LnQ2AatMWpExUHcZhDIPd.md": { + "title": " RAG and Dynamic Filters", + "description": "", + "links": [] + }, + "context-compaction@9XCxilAQ7FRet7lHQr1gE.md": { + "title": "Context compaction", + "description": "", + "links": [] + }, + "context-isolation@9JwWIK0Z2MK8-6EQQJsCO.md": { + "title": "Context Isolation", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/ai-red-teaming.json b/public/roadmap-content/ai-red-teaming.json index 5f1cfe56059b..3572c6962bd3 100644 --- a/public/roadmap-content/ai-red-teaming.json +++ b/public/roadmap-content/ai-red-teaming.json @@ -807,26 +807,10 @@ } ] }, - "JQ3bR8odXJfd-1RCEf3-Q": { - "title": "Authentication", - "description": "AI Red Teamers test authorization controls to ensure that authenticated users can only access the AI features and data permitted by their roles/permissions. They attempt privilege escalation, try to access other users' data via the AI, or manipulate the AI to perform actions beyond its authorized scope.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is Authentication vs Authorization?", - "url": "https://auth0.com/intro-to-iam/authentication-vs-authorization", - "type": "article" - }, - { - "title": "Identity and access management (IAM) fundamental concepts", - "url": "https://learn.microsoft.com/en-us/entra/fundamentals/identity-fundamental-concepts", - "type": "article" - }, - { - "title": "OWASP API Security Project", - "url": "https://owasp.org/www-project-api-security/", - "type": "article" - } - ] + "authorization@JQ3bR8odXJfd-1RCEf3-Q.md": { + "title": "Authorization", + "description": "", + "links": [] }, "0bApnJTt-Z2IUf0X3OCYf": { "title": "Black Box Testing", diff --git a/public/roadmap-content/android.json b/public/roadmap-content/android.json index cc85870c9d3f..2af9d4a6d1ec 100644 --- a/public/roadmap-content/android.json +++ b/public/roadmap-content/android.json @@ -1472,5 +1472,10 @@ "type": "article" } ] + }, + "security@j5qmSMOdhpGZo1XOUVx1k.md": { + "title": "Security", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/api-design.json b/public/roadmap-content/api-design.json index f4965fb60904..aa8d5ae5be54 100644 --- a/public/roadmap-content/api-design.json +++ b/public/roadmap-content/api-design.json @@ -740,42 +740,15 @@ } ] }, - "wFsbmMi5Ey9UyDADdbdPW": { - "title": "Role Based Access Control (RBAC)", - "description": "Role-Based Access Control (RBAC) is a method of managing authorization in API design that assigns system access to users based on their role within an organization. RBAC is crucial in controlling which endpoints a user can call, and what operations they are allowed to execute. In the context of API design, RBAC ensures appropriate levels of access for different types of users to guarantee data security and integrity. It simplifies the process of security administration by assigning privileges based on a user's job function, rather than on an individual basis.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Role-Based Access Control", - "url": "https://auth0.com/docs/manage-users/access-control/rbac", - "type": "article" - }, - { - "title": "What is Role-based Access Control (RBAC)?", - "url": "https://www.redhat.com/en/topics/security/what-is-role-based-access-control", - "type": "article" - }, - { - "title": "Role-based Access Control (RBAC) vs. Attribute-based Access Control (ABAC)", - "url": "https://www.youtube.com/watch?v=rvZ35YW4t5k", - "type": "video" - } - ] + "mac@tl1wXmOaj_zHL2o38VygO.md": { + "title": "MAC", + "description": "", + "links": [] }, - "dZTe_kxIUQsc9N3w920aR": { - "title": "Attribute Based Access Control (ABAC)", - "description": "Attribute Based Access Control (ABAC) is a flexible and powerful authorization method in the realm of API Design. Distinct from Role-Based Access Control (RBAC), which relies on predefined roles and permissions, ABAC uses attributes to build policies and make decisions. These attributes can be associated with the user, the action they want to perform, targeted resources, or the environment. With ABAC, finer-grained access control can be achieved, thereby improving the security and efficiency of APIs. This approach is widely used in complex and dynamic environments where access control requirements can be multifaceted and deeply context-dependent.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is Attribute Based Access Control?", - "url": "https://www.okta.com/uk/blog/2020/09/attribute-based-access-control-abac/", - "type": "article" - }, - { - "title": "Attribute Based Access Control", - "url": "https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html", - "type": "article" - } - ] + "rebac@CCcY8UsGdd2pdBYHt9L4o.md": { + "title": "ReBAC", + "description": "", + "links": [] }, "tzUJwXu_scwQHnPPT0oY-": { "title": "API Keys & Management", @@ -1596,5 +1569,25 @@ "type": "video" } ] + }, + "dac@_BXgYUlaYfpYrryXTw5n2.md": { + "title": "DAC", + "description": "", + "links": [] + }, + "abac@dZTe_kxIUQsc9N3w920aR.md": { + "title": "ABAC", + "description": "", + "links": [] + }, + "pbac@nJWtUyn9bljh3T-q_adJK.md": { + "title": "PBAC", + "description": "", + "links": [] + }, + "rbac@wFsbmMi5Ey9UyDADdbdPW.md": { + "title": "RBAC", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/backend.json b/public/roadmap-content/backend.json index db629712a0ab..98304c4d169c 100644 --- a/public/roadmap-content/backend.json +++ b/public/roadmap-content/backend.json @@ -1,27 +1,37 @@ { - "gKTSe9yQFVbPVlLzWB0hC": { - "title": "Search Engines", - "description": "Search engines like Elasticsearch are specialized tools designed for fast, scalable, and flexible searching and analyzing of large volumes of data. Elasticsearch is an open-source, distributed search and analytics engine built on Apache Lucene, offering full-text search capabilities, real-time indexing, and advanced querying features. Key characteristics of search engines like Elasticsearch include:\n\n1. **Full-Text Search**: Support for complex search queries, including relevance scoring and text analysis.\n2. **Distributed Architecture**: Scalability through horizontal distribution across multiple nodes or servers.\n3. **Real-Time Indexing**: Ability to index and search data almost instantaneously.\n4. **Powerful Query DSL**: A domain-specific language for constructing and executing sophisticated queries.\n5. **Analytics**: Capabilities for aggregating and analyzing data, often used for log and event data analysis.\n\nVisit the following resources to learn more:", + "9cD5ag1L0GqHx4_zxc5JX": { + "title": "Open API Specs", + "description": "The OpenAPI Specification (OAS), formerly known as Swagger, is a standard for defining and documenting RESTful APIs. It provides a structured format in YAML or JSON to describe API endpoints, request and response formats, authentication methods, and other metadata. By using OAS, developers can create a comprehensive and machine-readable API description that facilitates client generation, automated documentation, and testing. This specification promotes consistency and clarity in API design, enhances interoperability between different systems, and enables tools to generate client libraries, server stubs, and interactive API documentation.\n\nVisit the following resources to learn more:", "links": [ { - "title": "Elasticsearch", - "url": "https://www.elastic.co/elasticsearch/", + "title": "OpenAPI Specification Website", + "url": "https://swagger.io/specification/", "type": "article" + }, + { + "title": "Open API Live Editor", + "url": "https://swagger.io/tools/swagger-editor/", + "type": "article" + }, + { + "title": "OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0", + "url": "https://www.youtube.com/watch?v=6kwmW_p_Tig", + "type": "video" + }, + { + "title": " REST API and OpenAPI: It’s Not an Either/Or Question", + "url": "https://www.youtube.com/watch?v=pRS9LRBgjYg", + "type": "video" } ] }, - "9Fpoor-Os_9lvrwu5Zjh-": { - "title": "Design and Development Principles", - "description": "Design and Development Principles are fundamental guidelines that inform the creation of software systems. Key principles include:\n\n* SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)\n* DRY (Don't Repeat Yourself)\n* KISS (Keep It Simple, Stupid)\n* YAGNI (You Aren't Gonna Need It)\n* Separation of Concerns\n* Modularity\n* Encapsulation\n* Composition over Inheritance\n* Loose Coupling and High Cohesion\n* Principle of Least Astonishment\n\nVisit the following resources to learn more:", + "gKTSe9yQFVbPVlLzWB0hC": { + "title": "Search Engines", + "description": "Search engines like Elasticsearch are specialized tools designed for fast, scalable, and flexible searching and analyzing of large volumes of data. Elasticsearch is an open-source, distributed search and analytics engine built on Apache Lucene, offering full-text search capabilities, real-time indexing, and advanced querying features. Key characteristics of search engines like Elasticsearch include:\n\n1. **Full-Text Search**: Support for complex search queries, including relevance scoring and text analysis.\n2. **Distributed Architecture**: Scalability through horizontal distribution across multiple nodes or servers.\n3. **Real-Time Indexing**: Ability to index and search data almost instantaneously.\n4. **Powerful Query DSL**: A domain-specific language for constructing and executing sophisticated queries.\n5. **Analytics**: Capabilities for aggregating and analyzing data, often used for log and event data analysis.\n\nVisit the following resources to learn more:", "links": [ { - "title": "Design Principles - Wikipedia", - "url": "https://en.wikipedia.org/wiki/Design_principles", - "type": "article" - }, - { - "title": "Design Principles - Microsoft", - "url": "https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index", + "title": "Elasticsearch", + "url": "https://www.elastic.co/elasticsearch/", "type": "article" } ] @@ -47,41 +57,10 @@ } ] }, - "SiYUdtYMDImRPmV2_XPkH": { - "title": "Internet", - "description": "The internet is a global network of interconnected computers that communicate using standardized protocols, primarily TCP/IP. When you request a webpage, your device sends a data packet through your internet service provider (ISP) to a DNS server, which translates the website's domain name into an IP address. The packet is then routed across various networks (using routers and switches) to the destination server, which processes the request and sends back the response. This back-and-forth exchange enables the transfer of data like web pages, emails, and files, making the internet a dynamic, decentralized system for global communication.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "How does the Internet Work?", - "url": "https://cs.fyi/guide/how-does-internet-work", - "type": "article" - }, - { - "title": "The Internet Explained", - "url": "https://www.vox.com/2014/6/16/18076282/the-internet", - "type": "article" - }, - { - "title": "How Does the Internet Work?", - "url": "http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm", - "type": "article" - }, - { - "title": "Introduction to Internet", - "url": "/guides/what-is-internet", - "type": "article" - }, - { - "title": "How does the Internet work?", - "url": "https://www.youtube.com/watch?v=x3c1ih2NJEg", - "type": "video" - }, - { - "title": "How does the internet work? (Full Course)", - "url": "https://www.youtube.com/watch?v=zN8YNNHcaZc", - "type": "video" - } - ] + "introduction@SiYUdtYMDImRPmV2_XPkH.md": { + "title": "Introduction", + "description": "", + "links": [] }, "CWwh2abwqx4hAxpAGvhIx": { "title": "Rust", @@ -351,9 +330,9 @@ } ] }, - "2f0ZO6GJElfZ2Eis28Hzg": { - "title": "Pick a Language", - "description": "Even if you’re a beginner, the first thing you’ll learn is that web development is primarily divided into two aspects: Frontend Development and Backend Development, each with its unique tools and technologies. For Frontend Development, foundational technologies include HTML, CSS, and JavaScript. Similarly, Backend Development revolves around server-side programming languages like Python, Java, or Node.js, complemented by databases, frameworks, and web servers that enable website functionality.", + "pick-a-backend-language@2f0ZO6GJElfZ2Eis28Hzg.md": { + "title": "Pick a Backend Language", + "description": "", "links": [] }, "_I1E__wCIVrhjMk6IMieE": { @@ -464,37 +443,6 @@ } ] }, - "Ry_5Y-BK7HrkIc6X0JG1m": { - "title": "Bitbucket", - "description": "Bitbucket is a web-based version control repository hosting service owned by Atlassian. It primarily uses Git version control systems, offering both cloud-hosted and self-hosted options. Bitbucket provides features such as pull requests for code review, branch permissions, and inline commenting on code. It integrates seamlessly with other Atlassian products like Jira and Trello, making it popular among teams already using Atlassian tools. Bitbucket supports continuous integration and deployment through Bitbucket Pipelines. It offers unlimited private repositories for small teams, making it cost-effective for smaller organizations.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Bitbucket", - "url": "https://bitbucket.org/product", - "type": "article" - }, - { - "title": "Overview of Bitbucket", - "url": "https://bitbucket.org/product/guides/getting-started/overview#a-brief-overview-of-bitbucket", - "type": "article" - }, - { - "title": "Using Git with Bitbucket Cloud", - "url": "https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud", - "type": "article" - }, - { - "title": "Explore top posts about Bitbucket", - "url": "https://app.daily.dev/tags/bitbucket?ref=roadmapsh", - "type": "article" - }, - { - "title": "Bitbucket tutorial | How to use Bitbucket Cloud", - "url": "https://www.youtube.com/watch?v=M44nEyd_5To", - "type": "video" - } - ] - }, "Wcp-VDdFHipwa7hNAp1z_": { "title": "GitLab", "description": "GitLab is a web-based DevOps platform that provides a complete solution for the software development lifecycle. It offers source code management, continuous integration/continuous deployment (CI/CD), issue tracking, and more, all integrated into a single application. GitLab supports Git repositories and includes features like merge requests (similar to GitHub's pull requests), wiki pages, and issue boards. It emphasizes DevOps practices, providing built-in CI/CD pipelines, container registry, and Kubernetes integration. GitLab offers both cloud-hosted and self-hosted options, giving organizations flexibility in deployment. Its all-in-one approach differentiates it from competitors, as it includes features that might require multiple tools in other ecosystems. GitLab's focus on the entire DevOps lifecycle, from planning to monitoring, makes it popular among enterprises and teams seeking a unified platform for their development workflows.\n\nVisit the following resources to learn more:", @@ -854,21 +802,10 @@ } ] }, - "SYXJhanu0lFmGj2m2XXhS": { - "title": "Profiling Perfor.", - "description": "Profiling performance involves analyzing a system or application's behavior to identify bottlenecks, inefficiencies, and areas for optimization. This process typically involves collecting detailed information about resource usage, such as CPU and memory consumption, I/O operations, and execution time of functions or methods. Profiling tools can provide insights into how different parts of the code contribute to overall performance, highlighting slow or resource-intensive operations. By understanding these performance characteristics, developers can make targeted improvements, optimize code paths, and enhance system responsiveness and scalability. Profiling is essential for diagnosing performance issues and ensuring that applications meet desired performance standards.\n\nLearn more from the following resources:", - "links": [ - { - "title": "How to Profile SQL Queries for Better Performance", - "url": "https://servebolt.com/articles/profiling-sql-queries/", - "type": "article" - }, - { - "title": "Performance Profiling", - "url": "https://www.youtube.com/watch?v=MaauQTeGg2k", - "type": "video" - } - ] + "profiling-performance@SYXJhanu0lFmGj2m2XXhS.md": { + "title": "Profiling Performance", + "description": "", + "links": [] }, "bQnOAu863hsHdyNMNyJop": { "title": "N+1 Problem", @@ -1022,22 +959,6 @@ } ] }, - "dLY0KafPstajCcSbslC4M": { - "title": "HATEOAS", - "description": "HATEOAS (Hypermedia As The Engine Of Application State) is a constraint of RESTful architecture that allows clients to navigate an API dynamically through hypermedia links provided in responses. Instead of hard-coding URLs or endpoints, the client discovers available actions through these links, much like a web browser following links on a webpage. This enables greater flexibility and decouples clients from server-side changes, making the system more adaptable and scalable without breaking existing clients. It's a key element of REST's principle of statelessness and self-descriptive messages.\n\nLearn more from the following resources:", - "links": [ - { - "title": "What is HATEOAS and why is it important for my REST API?", - "url": "https://restcookbook.com/Basics/hateoas/", - "type": "article" - }, - { - "title": "What happened to HATEOAS", - "url": "https://www.youtube.com/watch?v=HNTSrytKCoQ", - "type": "video" - } - ] - }, "sNceS4MpSIjRkWhNDmrFg": { "title": "JSON APIs", "description": "JSON or JavaScript Object Notation is an encoding scheme that is designed to eliminate the need for an ad-hoc code for each application to communicate with servers that communicate in a defined way. JSON API module exposes an implementation for data stores and data structures, such as entity types, bundles, and fields.\n\nVisit the following resources to learn more:", @@ -1059,32 +980,6 @@ } ] }, - "9cD5ag1L0GqHx4_zxc5JX": { - "title": "Open API Specs", - "description": "The OpenAPI Specification (OAS), formerly known as Swagger, is a standard for defining and documenting RESTful APIs. It provides a structured format in YAML or JSON to describe API endpoints, request and response formats, authentication methods, and other metadata. By using OAS, developers can create a comprehensive and machine-readable API description that facilitates client generation, automated documentation, and testing. This specification promotes consistency and clarity in API design, enhances interoperability between different systems, and enables tools to generate client libraries, server stubs, and interactive API documentation.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "OpenAPI Specification Website", - "url": "https://swagger.io/specification/", - "type": "article" - }, - { - "title": "Open API Live Editor", - "url": "https://swagger.io/tools/swagger-editor/", - "type": "article" - }, - { - "title": "OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0", - "url": "https://www.youtube.com/watch?v=6kwmW_p_Tig", - "type": "video" - }, - { - "title": " REST API and OpenAPI: It’s Not an Either/Or Question", - "url": "https://www.youtube.com/watch?v=pRS9LRBgjYg", - "type": "video" - } - ] - }, "sSNf93azjuyMzQqIHE0Rh": { "title": "SOAP", "description": "Simple Object Access Protocol (SOAP) is a message protocol for exchanging information between systems and applications. When it comes to application programming interfaces (APIs), a SOAP API is developed in a more structured and formalized way. SOAP messages can be carried over a variety of lower-level protocols, including the web-related Hypertext Transfer Protocol (HTTP).\n\nVisit the following resources to learn more:", @@ -1184,89 +1079,15 @@ } ] }, - "KWTbEVX_WxS8jmSaAX3Fe": { - "title": "Client Side", - "description": "Client-side caching is a technique where web browsers or applications store data locally on the user's device to improve performance and reduce server load. It involves saving copies of web pages, images, scripts, and other resources on the client's system for faster access on subsequent visits. Modern browsers implement various caching mechanisms, including HTTP caching (using headers like Cache-Control and ETag), service workers for offline functionality, and local storage APIs. Client-side caching significantly reduces network traffic and load times, enhancing user experience, especially on slower connections. However, it requires careful management to balance improved performance with the need for up-to-date content. Developers must implement appropriate cache invalidation strategies and consider cache-busting techniques for critical updates. Effective client-side caching is crucial for creating responsive, efficient web applications while minimizing server resource usage.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Client Side Caching", - "url": "https://redis.io/docs/latest/develop/use/client-side-caching/", - "type": "article" - }, - { - "title": "Everything you need to know about HTTP Caching", - "url": "https://www.youtube.com/watch?v=HiBDZgTNpXY", - "type": "video" - } - ] - }, - "Nq2BO53bHJdFT1rGZPjYx": { - "title": "CDN", - "description": "A Content Delivery Network (CDN) service aims to provide high availability and performance improvements of websites. This is achieved with fast delivery of website assets and content typically via geographically closer endpoints to the client requests.\n\nTraditional commercial CDNs (Amazon CloudFront, Akamai, CloudFlare and Fastly) provide servers across the globe which can be used for this purpose. Serving assets and contents via a CDN reduces bandwidth on website hosting, provides an extra layer of caching to reduce potential outages and can improve website security as well\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "CloudFlare - What is a CDN? | How do CDNs work?", - "url": "https://www.cloudflare.com/en-ca/learning/cdn/what-is-a-cdn/", - "type": "article" - }, - { - "title": "AWS - CDN", - "url": "https://aws.amazon.com/what-is/cdn/", - "type": "article" - }, - { - "title": "What is Cloud CDN?", - "url": "https://www.youtube.com/watch?v=841kyd_mfH0", - "type": "video" - }, - { - "title": "What is a CDN and how does it work?", - "url": "https://www.youtube.com/watch?v=RI9np1LWzqw", - "type": "video" - } - ] - }, - "z1-eP4sV75GBEIdM4NvL9": { - "title": "Server Side", - "description": "Server-side caching is a technique used to improve application performance by storing frequently accessed data in memory on the server, reducing the need for repeated data retrieval or computation. This approach helps to speed up response times and reduce the load on databases and other backend services. Common methods include caching database query results, HTML fragments, and API responses. Popular server-side caching tools and technologies include Redis, Memcached, and built-in caching mechanisms in web frameworks. By efficiently managing and serving cached content, server-side caching enhances scalability and responsiveness of applications.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Server-side caching and Client-side caching", - "url": "https://www.codingninjas.com/codestudio/library/server-side-caching-and-client-side-caching", - "type": "article" - }, - { - "title": "Caching strategies", - "url": "https://medium.com/@genchilu/cache-strategy-in-backend-d0baaacd2d79", - "type": "article" - }, - { - "title": "Local vs distributed", - "url": "https://redis.io/glossary/distributed-caching/", - "type": "article" - }, - { - "title": "Explore top posts about Web Development", - "url": "https://app.daily.dev/tags/webdev?ref=roadmapsh", - "type": "article" - } - ] + "http-caching@KWTbEVX_WxS8jmSaAX3Fe.md": { + "title": "HTTP Caching", + "description": "", + "links": [] }, - "ELj8af7Mi38kUbaPJfCUR": { + "caching@uPjCrDGA2MHylWXbZvMBM.md": { "title": "Caching", - "description": "Caching is a technique used in computing to store and retrieve frequently accessed data quickly, reducing the need to fetch it from the original, slower source repeatedly. It involves keeping a copy of data in a location that's faster to access than its primary storage. Caching can occur at various levels, including browser caching, application-level caching, and database caching. It significantly improves performance by reducing latency, decreasing network traffic, and lowering the load on servers or databases. Common caching strategies include time-based expiration, least recently used (LRU) algorithms, and write-through or write-back policies. While caching enhances speed and efficiency, it also introduces challenges in maintaining data consistency and freshness. Effective cache management is crucial in balancing performance gains with the need for up-to-date information in dynamic systems.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "What is Caching - AWS", - "url": "https://aws.amazon.com/caching/", - "type": "article" - }, - { - "title": "Caching - Cloudflare", - "url": "https://www.cloudflare.com/learning/cdn/what-is-caching/", - "type": "article" - } - ] + "description": "", + "links": [] }, "RBrIP5KbVQ2F0ly7kMfTo": { "title": "Web Security", @@ -1388,230 +1209,47 @@ } ] }, - "mGfD7HfuP184lFkXZzGjG": { - "title": "CI / CD", - "description": "CI/CD (Continuous Integration/Continuous Delivery) is a set of practices and tools in software development that automate the process of building, testing, and deploying code changes. Continuous Integration involves frequently merging code changes into a central repository, where automated builds and tests are run. Continuous Delivery extends this by automatically deploying all code changes to a testing or staging environment after the build stage. Some implementations include Continuous Deployment, where changes are automatically released to production. CI/CD pipelines typically involve stages like code compilation, unit testing, integration testing, security scans, and deployment. This approach aims to improve software quality, reduce time to market, and increase development efficiency by catching and addressing issues early in the development cycle.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "What is CI/CD?", - "url": "https://about.gitlab.com/topics/ci-cd/", - "type": "article" - }, - { - "title": "A Primer: Continuous Integration and Continuous Delivery (CI/CD)", - "url": "https://thenewstack.io/a-primer-continuous-integration-and-continuous-delivery-ci-cd/", - "type": "article" - }, - { - "title": "Articles about CI/CD", - "url": "https://thenewstack.io/category/ci-cd/", - "type": "article" - }, - { - "title": "Explore top posts about CI/CD", - "url": "https://app.daily.dev/tags/cicd?ref=roadmapsh", - "type": "article" - }, - { - "title": "DevOps CI/CD Explained in 100 Seconds", - "url": "https://www.youtube.com/watch?v=scEDHsr3APg", - "type": "video" - }, - { - "title": "Automate your Workflows with GitHub Actions", - "url": "https://www.youtube.com/watch?v=nyKZTKQS_EQ", - "type": "video" - } - ] - }, - "6XIWO0MoE-ySl4qh_ihXa": { - "title": "GOF Design Patterns", - "description": "The Gang of Four (GoF) Design Patterns are a collection of 23 foundational software design patterns that provide solutions to common object-oriented design problems. These patterns are grouped into three categories: _Creational_ (focused on object creation like Singleton and Factory), _Structural_ (focused on class and object composition like Adapter and Composite), and _Behavioral_ (focused on communication between objects like Observer and Strategy). Each pattern offers a proven template for addressing specific design challenges, promoting code reusability, flexibility, and maintainability across software systems.\n\nLearn more from the following links:", - "links": [ - { - "title": "Gangs of Four (GoF) Design Patterns", - "url": "https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns", - "type": "article" - }, - { - "title": "Design Patterns for Humans", - "url": "https://github.com/kamranahmedse/design-patterns-for-humans", - "type": "article" - }, - { - "title": "Tutorial - Builder Pattern (Gang of Four Design Patterns Series)", - "url": "https://www.youtube.com/watch?v=_sa2WlAFWQos", - "type": "video" - } - ] - }, - "u8IRw5PuXGUcmxA0YYXgx": { - "title": "CQRS", - "description": "CQRS (Command Query Responsibility Segregation) is an architectural pattern that separates read and write operations for a data store. In this pattern, \"commands\" handle data modification (create, update, delete), while \"queries\" handle data retrieval. The principle behind CQRS is that for many systems, especially complex ones, the requirements for reading data differ significantly from those for writing data. By separating these concerns, CQRS allows for independent scaling, optimization, and evolution of the read and write sides. This can lead to improved performance, scalability, and security. CQRS is often used in event-sourced systems and can be particularly beneficial in high-performance, complex domain applications. However, it also introduces additional complexity and should be applied judiciously based on the specific needs and constraints of the system.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "CQRS Pattern", - "url": "https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs", - "type": "article" - }, - { - "title": "Learn CQRS Pattern in 5 minutes!", - "url": "https://www.youtube.com/watch?v=eiut3FIY1Cg", - "type": "video" - } - ] - }, - "BvHi5obg0L1JDZFKBzx9t": { - "title": "Domain Driven Design", - "description": "Domain-Driven Design (DDD) is a software development approach that focuses on creating a deep understanding of the business domain and using this knowledge to inform the design of software systems. It emphasizes close collaboration between technical and domain experts to develop a shared language (ubiquitous language) and model that accurately represents the core concepts and processes of the business. DDD promotes organizing code around business concepts (bounded contexts), using rich domain models to encapsulate business logic, and separating the domain logic from infrastructure concerns. Key patterns in DDD include entities, value objects, aggregates, repositories, and domain services. This approach aims to create more maintainable and flexible software systems that closely align with business needs and can evolve with changing requirements. DDD is particularly valuable for complex domains where traditional CRUD-based architectures may fall short in capturing the nuances and rules of the business.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Domain-Driven Design", - "url": "https://redis.com/glossary/domain-driven-design-ddd/", - "type": "article" - }, - { - "title": "Explore top posts about Domain-Driven Design", - "url": "https://app.daily.dev/tags/domain-driven-design?ref=roadmapsh", - "type": "article" - }, - { - "title": "Domain Driven Design: What You Need To Know", - "url": "https://www.youtube.com/watch?v=4rhzdZIDX_k", - "type": "video" - } - ] - }, - "wqE-mkxvehOzOv8UyE39p": { - "title": "Event Sourcing", - "description": "Event sourcing is a design pattern in which the state of a system is represented as a sequence of events that have occurred over time. In an event-sourced system, changes to the state of the system are recorded as events and stored in an event store. The current state of the system is derived by replaying the events from the event store. One of the main benefits of event sourcing is that it provides a clear and auditable history of all the changes that have occurred in the system. This can be useful for debugging and for tracking the evolution of the system over time.Event sourcing is often used in conjunction with other patterns, such as Command Query Responsibility Segregation (CQRS) and domain-driven design, to build scalable and responsive systems with complex business logic. It is also useful for building systems that need to support undo/redo functionality or that need to integrate with external systems.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Event Sourcing - Martin Fowler", - "url": "https://martinfowler.com/eaaDev/EventSourcing.html", - "type": "article" - }, - { - "title": "Explore top posts about Architecture", - "url": "https://app.daily.dev/tags/architecture?ref=roadmapsh", - "type": "article" - }, - { - "title": "Event Sourcing 101", - "url": "https://www.youtube.com/watch?v=lg6aF5PP4Tc", - "type": "video" - } - ] - }, - "I-PUAE2AzbEaUkW9vMaUM": { - "title": "Test Driven Development", - "description": "Test driven development (TDD) is the process of writing tests for software's requirements which will fail until the software is developed to meet those requirements. Once those tests pass, then the cycle repeats to refactor code or develop another feature/requirement. In theory, this ensures that software is written to meet requirements in the simplest form, and avoids code defects.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "What is Test Driven Development (TDD)?", - "url": "https://www.guru99.com/test-driven-development.html", - "type": "article" - }, - { - "title": "Test-driven development", - "url": "https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/", - "type": "article" - }, - { - "title": "Explore top posts about TDD", - "url": "https://app.daily.dev/tags/tdd?ref=roadmapsh", - "type": "article" - }, - { - "title": "Test-Driven Development", - "url": "https://www.youtube.com/watch?v=Jv2uxzhPFl4", - "type": "video" - } - ] - }, - "Ke522R-4k6TDeiDRyZbbU": { - "title": "Monolithic Apps", - "description": "Monolithic applications are designed as a single, cohesive unit where all components—such as user interface, business logic, and data access—are tightly integrated and run as a single service. This architecture simplifies development and deployment since the entire application is managed and deployed together. However, it can lead to challenges with scalability, maintainability, and agility as the application grows. Changes to one part of the application may require redeploying the entire system, and scaling might necessitate duplicating the entire application rather than scaling individual components. Monolithic architectures can be suitable for smaller applications or projects with less complex requirements, but many organizations transition to microservices or modular architectures to address these limitations as they scale.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Pattern: Monolithic Architecture", - "url": "https://microservices.io/patterns/monolithic.html", - "type": "article" - }, - { - "title": "Monolithic Architecture - Advantages & Disadvantages", - "url": "https://datamify.medium.com/monolithic-architecture-advantages-and-disadvantages-e71a603eec89", - "type": "article" - }, - { - "title": "Monolithic vs Microservice Architecture", - "url": "https://www.youtube.com/watch?v=NdeTGlZ__Do", - "type": "video" - } - ] - }, - "nkmIv3dNwre4yrULMgTh3": { - "title": "Serverless", - "description": "Serverless computing is a cloud computing model where developers build and run applications without managing server infrastructure. In this model, cloud providers handle the server management, scaling, and maintenance tasks. Developers deploy code in the form of functions, which are executed in response to events or triggers, and are billed based on the actual usage rather than reserved capacity. This approach simplifies development by abstracting infrastructure concerns, enabling automatic scaling, and reducing operational overhead. Common serverless platforms include AWS Lambda, Google Cloud Functions, and Azure Functions, which support a range of event-driven applications and microservices.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Serverless", - "url": "https://www.ibm.com/cloud/learn/serverless", - "type": "article" - }, - { - "title": "AWS Services", - "url": "https://aws.amazon.com/serverless/", - "type": "article" - }, - { - "title": "Explore top posts about Serverless", - "url": "https://app.daily.dev/tags/serverless?ref=roadmapsh", - "type": "article" - }, - { - "title": "Serverless Computing in 100 Seconds", - "url": "https://www.youtube.com/watch?v=W_VV2Fx32_Y&ab_channel=Fireship", - "type": "video" - } - ] - }, - "K55h3aqOGe6-hgVhiFisT": { - "title": "Microservices", - "description": "Microservices is an architectural style that structures an application as a collection of loosely coupled, independently deployable services. Each microservice focuses on a specific business capability and communicates with others via lightweight protocols, typically HTTP or messaging queues. This approach allows for greater scalability, flexibility, and resilience, as services can be developed, deployed, and scaled independently. Microservices also facilitate the use of diverse technologies and languages for different components, and they support continuous delivery and deployment. However, managing microservices involves complexity in terms of inter-service communication, data consistency, and deployment orchestration.\n\nVisit the following resources to learn more:", + "mGfD7HfuP184lFkXZzGjG": { + "title": "CI / CD", + "description": "CI/CD (Continuous Integration/Continuous Delivery) is a set of practices and tools in software development that automate the process of building, testing, and deploying code changes. Continuous Integration involves frequently merging code changes into a central repository, where automated builds and tests are run. Continuous Delivery extends this by automatically deploying all code changes to a testing or staging environment after the build stage. Some implementations include Continuous Deployment, where changes are automatically released to production. CI/CD pipelines typically involve stages like code compilation, unit testing, integration testing, security scans, and deployment. This approach aims to improve software quality, reduce time to market, and increase development efficiency by catching and addressing issues early in the development cycle.\n\nVisit the following resources to learn more:", "links": [ { - "title": "Pattern: Microservice Architecture", - "url": "https://microservices.io/patterns/microservices.html", + "title": "What is CI/CD?", + "url": "https://about.gitlab.com/topics/ci-cd/", "type": "article" }, { - "title": "What is Microservices?", - "url": "https://smartbear.com/solutions/microservices/", + "title": "A Primer: Continuous Integration and Continuous Delivery (CI/CD)", + "url": "https://thenewstack.io/a-primer-continuous-integration-and-continuous-delivery-ci-cd/", "type": "article" }, { - "title": "Microservices 101", - "url": "https://thenewstack.io/microservices-101/", + "title": "Articles about CI/CD", + "url": "https://thenewstack.io/category/ci-cd/", "type": "article" }, { - "title": "Articles about Microservices", - "url": "https://thenewstack.io/category/microservices/", + "title": "Explore top posts about CI/CD", + "url": "https://app.daily.dev/tags/cicd?ref=roadmapsh", "type": "article" }, { - "title": "Explore top posts about Microservices", - "url": "https://app.daily.dev/tags/microservices?ref=roadmapsh", - "type": "article" + "title": "DevOps CI/CD Explained in 100 Seconds", + "url": "https://www.youtube.com/watch?v=scEDHsr3APg", + "type": "video" }, { - "title": "Microservices explained in 5 minutes", - "url": "https://www.youtube.com/watch?v=lL_j7ilk7rc", + "title": "Automate your Workflows with GitHub Actions", + "url": "https://www.youtube.com/watch?v=nyKZTKQS_EQ", "type": "video" } ] }, + "monolith@Ke522R-4k6TDeiDRyZbbU.md": { + "title": "Monolith", + "description": "", + "links": [] + }, "n14b7sfTOwsjKTpFC9EZ2": { "title": "Service Mesh", "description": "A service mesh is an architectural pattern for enhancing communication, security, and management between microservices in a distributed network. It employs a collection of intelligent proxies to manage service-to-service communication, ensuring high availability, efficient load balancing, and robust service discovery. Additionally, a service mesh offers advanced features like observability for monitoring network behavior, and various traffic management capabilities. In a typical service mesh setup, each microservice is paired with a proxy. This proxy, often deployed using a sidecar pattern, is responsible not only for handling communication to and from its associated microservice but also for implementing various network functionalities. These functionalities include load balancing, intelligent routing, and ensuring secure data transfer. The sidecar pattern, integral to service meshes, involves deploying the proxy as a sidecar container alongside the main microservice container, especially in Kubernetes environments. This design allows the service mesh to function independently from the microservices themselves, simplifying management and updates.\n\nVisit the following resources to learn more:", @@ -1810,27 +1448,6 @@ } ] }, - "SGVwJme-jT_pbOTvems0v": { - "title": "Containerization vs Virtualization", - "description": "Containerization and virtualization are both technologies for isolating and running multiple applications on shared hardware, but they differ significantly in approach and resource usage. Virtualization creates separate virtual machines (VMs), each with its own operating system, running on a hypervisor. This provides strong isolation but consumes more resources. Containerization, exemplified by Docker, uses a shared operating system kernel to create isolated environments (containers) for applications. Containers are lighter, start faster, and use fewer resources than VMs. They're ideal for microservices architectures and rapid deployment. Virtualization offers better security isolation and is suitable for running different operating systems on the same hardware. Containerization provides greater efficiency and scalability, especially for cloud-native applications. The choice between them depends on specific use cases, security requirements, and infrastructure needs.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Containerization vs. Virtualization: Everything you need to know", - "url": "https://middleware.io/blog/containerization-vs-virtualization/", - "type": "article" - }, - { - "title": "Explore top posts about Containers", - "url": "https://app.daily.dev/tags/containers?ref=roadmapsh", - "type": "article" - }, - { - "title": "Virtual Machine (VM) vs Docker", - "url": "https://www.youtube.com/watch?v=a1M_thDTqmU", - "type": "video" - } - ] - }, "sVuIdAe08IWJVqAt4z-ag": { "title": "WebSockets", "description": "WebSockets provide a protocol for full-duplex, real-time communication between a client (usually a web browser) and a server over a single, long-lived connection. Unlike traditional HTTP, which requires multiple request-response cycles to exchange data, WebSockets establish a persistent connection that allows for continuous data exchange in both directions. This enables efficient real-time interactions, such as live chat, online gaming, and real-time updates on web pages. WebSocket connections start with an HTTP handshake, then upgrade to a WebSocket protocol, facilitating low-latency communication and reducing overhead compared to HTTP polling or long polling.\n\nVisit the following resources to learn more:", @@ -1977,26 +1594,10 @@ } ] }, - "fekyMpEnaGqjh1Cu4Nyc4": { - "title": "Web Servers", - "description": "Web servers are software or hardware systems that handle requests from clients (usually web browsers) and serve web content, such as HTML pages, images, and other resources. They process incoming HTTP or HTTPS requests, interact with application servers or databases if needed, and send the appropriate response back to the client. Popular web servers include Apache HTTP Server, Nginx, and Microsoft Internet Information Services (IIS). Web servers are essential for hosting websites and web applications, managing traffic, and ensuring reliable access to online resources by handling concurrent connections, serving static and dynamic content, and providing security features like SSL/TLS encryption.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "What is a Web Server? - Mozilla", - "url": "https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server", - "type": "article" - }, - { - "title": "What is a Web Server?", - "url": "https://www.hostinger.co.uk/tutorials/what-is-a-web-server", - "type": "article" - }, - { - "title": "Web Server Concepts and Examples", - "url": "https://youtu.be/9J1nJOivdyw", - "type": "video" - } - ] + "learn-about-web-servers@fekyMpEnaGqjh1Cu4Nyc4.md": { + "title": "Learn about Web Servers", + "description": "", + "links": [] }, "SHmbcMRsc3SygEDksJQBD": { "title": "Building For Scale", @@ -2254,43 +1855,6 @@ } ] }, - "f7iWBkC0X7yyCoP_YubVd": { - "title": "Migration Strategies", - "description": "Migration strategies involve planning and executing the transition of applications, data, or infrastructure from one environment to another, such as from on-premises systems to the cloud or between different cloud providers. Key strategies include:\n\n1. **Rehost (Lift and Shift)**: Moving applications as-is to the new environment with minimal changes, which is often the quickest but may not fully leverage new platform benefits.\n2. **Replatform**: Making some optimizations or changes to adapt applications for the new environment, enhancing performance or scalability while retaining most of the existing architecture.\n3. **Refactor**: Redesigning and modifying applications to optimize for the new environment, often taking advantage of new features and improving functionality or performance.\n4. **Repurchase**: Replacing existing applications with new, often cloud-based, solutions that better meet current needs.\n5. **Retain**: Keeping certain applications or systems in their current environment due to specific constraints or requirements.\n6. **Retire**: Decommissioning applications that are no longer needed or are redundant.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Databases as a Challenge for Continuous Delivery", - "url": "https://phauer.com/2015/databases-challenge-continuous-delivery/", - "type": "article" - }, - { - "title": "AWS Cloud Migration Strategies", - "url": "https://www.youtube.com/watch?v=9ziB82V7qVM", - "type": "video" - } - ] - }, - "osQlGGy38xMcKLtgZtWaZ": { - "title": "Types of Scaling", - "description": "Horizontal scaling (scaling out/in) involves adding or removing instances of resources, such as servers or containers, to handle increased or decreased loads. It distributes the workload across multiple instances to improve performance and redundancy. This method enhances the system's capacity by expanding the number of nodes in a distributed system.\n\nVertical scaling (scaling up/down) involves increasing or decreasing the resources (CPU, memory, storage) of a single instance or server to handle more load or reduce capacity. This method improves performance by upgrading the existing hardware or virtual machine but has limits based on the maximum capacity of the individual resource.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Horizontal vs Vertical Scaling", - "url": "https://touchstonesecurity.com/horizontal-vs-vertical-scaling-what-you-need-to-know/", - "type": "article" - }, - { - "title": "Vertical Vs Horizontal Scaling: Key Differences You Should Know", - "url": "https://www.youtube.com/watch?v=dvRFHG2-uYs", - "type": "video" - }, - { - "title": "System Design 101", - "url": "https://www.youtube.com/watch?v=Y-Gl4HEyeUQ", - "type": "video" - } - ] - }, "4X-sbqpP0NDhM99bKdqIa": { "title": "Instrumentation", "description": "Instrumentation, monitoring, and telemetry are critical components for ensuring system reliability and performance. _Instrumentation_ refers to embedding code or tools within applications to capture key metrics, logs, and traces. _Monitoring_ involves observing these metrics in real time to detect anomalies, failures, or performance issues, often using dashboards and alerting systems. _Telemetry_ is the automated collection and transmission of this data from distributed systems, enabling visibility into system behavior. Together, these practices provide insights into the health, usage, and performance of systems, aiding in proactive issue resolution and optimizing overall system efficiency.\n\nVisit the following resources to learn more:", @@ -3056,37 +2620,10 @@ } ] }, - "osvajAJlwGI3XnX0fE-kA": { - "title": "Long Polling", - "description": "Long polling is a technique where the client polls the server for new data. However, if the server does not have any data available for the client, instead of sending an empty response, the server holds the request and waits for some specified period of time for new data to be available. If new data becomes available during that time, the server immediately sends a response to the client, completing the open request. If no new data becomes available and the timeout period specified by the client expires, the server sends a response indicating that fact. The client will then immediately re-request data from the server, creating a new request-response cycle.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Long Polling", - "url": "https://javascript.info/long-polling", - "type": "article" - }, - { - "title": "What is Long Polling?", - "url": "https://www.youtube.com/watch?v=LD0_-uIsnOE", - "type": "video" - } - ] - }, - "Tt7yr-ChHncJG0Ge1f0Xk": { - "title": "Short Polling", - "description": "Short polling is a technique where a client periodically sends requests to a server at regular intervals to check for updates or new data. The server responds with the current state or any changes since the last request. While simple to implement and compatible with most HTTP infrastructures, short polling can be inefficient due to the frequent network requests and potential for increased latency in delivering updates. It contrasts with long polling and WebSockets, which offer more efficient mechanisms for real-time communication. Short polling is often used when real-time requirements are less stringent and ease of implementation is a priority.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Amazon SQS Short and Long Polling", - "url": "https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html", - "type": "article" - }, - { - "title": "Short Polling vs Long Polling vs WebSockets", - "url": "https://www.youtube.com/watch?v=ZBM28ZPlin8", - "type": "video" - } - ] + "long--short-polling@osvajAJlwGI3XnX0fE-kA.md": { + "title": "Long / Short Polling", + "description": "", + "links": [] }, "M0iaSSdVPWaCUpyTG50Vf": { "title": "Redis", @@ -3239,63 +2776,15 @@ } ] }, - "WiAK70I0z-_bzbWNwiHUd": { - "title": "TimeScale", - "description": "TimescaleDB is an open-source, time-series database built as an extension to PostgreSQL. It is designed to handle large volumes of time-stamped data efficiently, making it suitable for applications that require high-performance analytics on time-series data, such as monitoring systems, IoT applications, and financial services. TimescaleDB leverages PostgreSQL’s features while providing additional capabilities for time-series data, including efficient data ingestion, advanced time-based queries, and automatic data partitioning (hypertables). It supports complex queries and aggregations, making it a powerful tool for analyzing trends and patterns in time-series data.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Timescale Website", - "url": "https://www.timescale.com/", - "type": "article" - }, - { - "title": "Tutorial - TimeScaleDB Explained in 100 Seconds", - "url": "https://www.youtube.com/watch?v=69Tzh_0lHJ8", - "type": "video" - }, - { - "title": "What is Time Series Data?", - "url": "https://www.youtube.com/watch?v=Se5ipte9DMY", - "type": "video" - } - ] + "timescaledb@WiAK70I0z-_bzbWNwiHUd.md": { + "title": "TimescaleDB", + "description": "", + "links": [] }, - "gT6-z2vhdIQDzmR2K1g1U": { + "cassandra@zsiZLWJ2bMvrjuHch5fX_.md": { "title": "Cassandra", - "description": "Apache Cassandra is a highly scalable, distributed NoSQL database designed to handle large amounts of structured data across multiple commodity servers. It provides high availability with no single point of failure, offering linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure. Cassandra uses a masterless ring architecture, where all nodes are equal, allowing for easy data distribution and replication. It supports flexible data models and can handle both unstructured and structured data. Cassandra excels in write-heavy environments and is particularly suitable for applications requiring high throughput and low latency. Its data model is based on wide column stores, offering a more complex structure than key-value stores. Widely used in big data applications, Cassandra is known for its ability to handle massive datasets while maintaining performance and reliability.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Apache Cassandra", - "url": "https://cassandra.apache.org/_/index.html", - "type": "article" - }, - { - "title": "article@Cassandra - Quick Guide", - "url": "https://www.tutorialspoint.com/cassandra/cassandra_quick_guide.htm", - "type": "article" - }, - { - "title": "Explore top posts about Backend Development", - "url": "https://app.daily.dev/tags/backend?ref=roadmapsh", - "type": "article" - }, - { - "title": "Apache Cassandra - Course for Beginners", - "url": "https://www.youtube.com/watch?v=J-cSy5MeMOA", - "type": "video" - } - ] - }, - "QZwTLOvjUTaSb_9deuxsR": { - "title": "Base", - "description": "Oracle Base Database Service enables you to maintain absolute control over your data while using the combined capabilities of Oracle Database and Oracle Cloud Infrastructure. Oracle Base Database Service offers database systems (DB systems) on virtual machines. They are available as single-node DB systems and multi-node RAC DB systems on Oracle Cloud Infrastructure (OCI). You can manage these DB systems by using the OCI Console, the OCI API, the OCI CLI, the Database CLI (DBCLI), Enterprise Manager, or SQL Developer.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Base Database Documentation", - "url": "https://docs.oracle.com/en-us/iaas/base-database/index.html", - "type": "article" - } - ] + "description": "", + "links": [] }, "5xy66yQrz1P1w7n6PcAFq": { "title": "AWS Neptune", @@ -3354,20 +2843,236 @@ } ] }, - "ZsZvStCvKwFhlBYe9HGhl": { - "title": "Migrations", - "description": "Database migrations are a version-controlled way to manage and apply incremental changes to a database schema over time, allowing developers to modify the database structure (e.g., adding tables, altering columns) without affecting existing data. They ensure that the database evolves alongside application code in a consistent, repeatable manner across environments (e.g., development, testing, production), while maintaining compatibility with older versions of the schema. Migrations are typically written in SQL or a database-agnostic language, and are executed using migration tools like Liquibase, Flyway, or built-in ORM features such as Django or Rails migrations.\n\nLearn more from the following resources:", + "frontend-basics@oyg5g4-cY5EBEUgVkjnL3.md": { + "title": "Frontend Basics", + "description": "", + "links": [] + }, + "html@9-pCsW650T1mfj5dmRB9L.md": { + "title": "HTML", + "description": "", + "links": [] + }, + "css@utA1W2O6pzoV_LbtDE5DN.md": { + "title": "CSS", + "description": "", + "links": [] + }, + "javascript@An2lMuJEkkpL0cfw4RrSl.md": { + "title": "JavaScript", + "description": "", + "links": [] + }, + "K55h3aqOGe6-hgVhiFisT": { + "title": "Microservices", + "description": "Microservices is an architectural style that structures an application as a collection of loosely coupled, independently deployable services. Each microservice focuses on a specific business capability and communicates with others via lightweight protocols, typically HTTP or messaging queues. This approach allows for greater scalability, flexibility, and resilience, as services can be developed, deployed, and scaled independently. Microservices also facilitate the use of diverse technologies and languages for different components, and they support continuous delivery and deployment. However, managing microservices involves complexity in terms of inter-service communication, data consistency, and deployment orchestration.\n\nVisit the following resources to learn more:", + "links": [ + { + "title": "Pattern: Microservice Architecture", + "url": "https://microservices.io/patterns/microservices.html", + "type": "article" + }, + { + "title": "What is Microservices?", + "url": "https://smartbear.com/solutions/microservices/", + "type": "article" + }, + { + "title": "Microservices 101", + "url": "https://thenewstack.io/microservices-101/", + "type": "article" + }, + { + "title": "Articles about Microservices", + "url": "https://thenewstack.io/category/microservices/", + "type": "article" + }, + { + "title": "Explore top posts about Microservices", + "url": "https://app.daily.dev/tags/microservices?ref=roadmapsh", + "type": "article" + }, + { + "title": "Microservices explained in 5 minutes", + "url": "https://www.youtube.com/watch?v=lL_j7ilk7rc", + "type": "video" + } + ] + }, + "nkmIv3dNwre4yrULMgTh3": { + "title": "Serverless", + "description": "Serverless computing is a cloud computing model where developers build and run applications without managing server infrastructure. In this model, cloud providers handle the server management, scaling, and maintenance tasks. Developers deploy code in the form of functions, which are executed in response to events or triggers, and are billed based on the actual usage rather than reserved capacity. This approach simplifies development by abstracting infrastructure concerns, enabling automatic scaling, and reducing operational overhead. Common serverless platforms include AWS Lambda, Google Cloud Functions, and Azure Functions, which support a range of event-driven applications and microservices.\n\nVisit the following resources to learn more:", "links": [ { - "title": "What are Database Migrations?", - "url": "https://www.prisma.io/dataguide/types/relational/what-are-database-migrations", + "title": "Serverless", + "url": "https://www.ibm.com/cloud/learn/serverless", + "type": "article" + }, + { + "title": "AWS Services", + "url": "https://aws.amazon.com/serverless/", + "type": "article" + }, + { + "title": "Explore top posts about Serverless", + "url": "https://app.daily.dev/tags/serverless?ref=roadmapsh", "type": "article" }, { - "title": "Database Migrations for Beginners", - "url": "https://www.youtube.com/watch?v=dJDBP7pPA-o", + "title": "Serverless Computing in 100 Seconds", + "url": "https://www.youtube.com/watch?v=W_VV2Fx32_Y&ab_channel=Fireship", "type": "video" } ] + }, + "clickhouse@ZyGLSvx17p7QmYDy1LFbM.md": { + "title": "ClickHouse", + "description": "", + "links": [] + }, + "scylladb@aArZ3gKwObzafCkTOd-Hj.md": { + "title": "ScyllaDB", + "description": "", + "links": [] + }, + "dgraph@GKrcTsUi5XWj_pP1TOK0S.md": { + "title": "DGraph", + "description": "", + "links": [] + }, + "migrations@MOLAXgs0CMCT7o84L0EaK.md": { + "title": "Migrations", + "description": "", + "links": [] + }, + "claude-code@RcC1fVuePQZ59AsJfeTdR.md": { + "title": "Claude Code", + "description": "", + "links": [] + }, + "copilot@HQrxxDxKN8gizvXRU5psW.md": { + "title": "Copilot", + "description": "", + "links": [] + }, + "cursor@CKlkVK_7GZ7xzIUHJqZr8.md": { + "title": "Cursor", + "description": "", + "links": [] + }, + "antigravity@E7-LveK7jO2npxVTLUDfw.md": { + "title": "Antigravity", + "description": "", + "links": [] + }, + "how-llms-work@tUNP5VRKvrPcufPDPPEo8.md": { + "title": "How LLMs work", + "description": "", + "links": [] + }, + "ai-vs-traditional-coding@IZKl6PxbvgNkryAkdy3-p.md": { + "title": "AI vs Traditional Coding", + "description": "", + "links": [] + }, + "code-reviews@0TMdly8yiqnNR8sx36iqc.md": { + "title": "Code Reviews", + "description": "", + "links": [] + }, + "documentation-generation@q7NpwqQXUp4wt2to-yFiP.md": { + "title": "Documentation Generation", + "description": "", + "links": [] + }, + "learn-the-basics@UTupdqjOyLh7-56_0SXJ8.md": { + "title": "Learn the Basics", + "description": "", + "links": [] + }, + "ai-assisted-coding@fA3yi9puMbTFmbPpo6OjN.md": { + "title": "AI Assisted Coding", + "description": "", + "links": [] + }, + "prompting-techniques@xL8d-uHMpJKwUvT8z-Jia.md": { + "title": "Prompting Techniques", + "description": "", + "links": [] + }, + "gemini@Bic4PHhz-YqzPWRimJO83.md": { + "title": "Gemini", + "description": "", + "links": [] + }, + "openai@-ye5ZtYFDoYGpj-UJaBP8.md": { + "title": "OpenAI", + "description": "", + "links": [] + }, + "anthropic@Lw2nR7x8PYgq1P5CxPAxi.md": { + "title": "Anthropic", + "description": "", + "links": [] + }, + "refactoring@EYT2rTLZ8tUW2u8DOnAWF.md": { + "title": "Refactoring", + "description": "", + "links": [] + }, + "applications@Nx7mjvYgqLpmJ0_iSx5of.md": { + "title": "Applications", + "description": "", + "links": [] + }, + "streaming@9f-aWi3_7USy4XpNzrTL6.md": { + "title": "Streaming", + "description": "", + "links": [] + }, + "structured-outputs@GMxPmyatxYmIPRFHfRAnr.md": { + "title": "Structured Outputs", + "description": "", + "links": [] + }, + "function-calling@Uve-UObgOBfrd-cLayVWe.md": { + "title": "Function Calling", + "description": "", + "links": [] + }, + "integration-patterns@iatQ3RCxESHt1CwN3PSfx.md": { + "title": "Integration Patterns", + "description": "", + "links": [] + }, + "rags@6PCOCzCbx7jo9wO2Hl2gy.md": { + "title": "RAGs", + "description": "", + "links": [] + }, + "vectors@yKNdBbahm_h81xdMDT-qx.md": { + "title": "Vectors", + "description": "", + "links": [] + }, + "embeddings@Ofv__kXuBk-Vv2jVhaFss.md": { + "title": "Embeddings", + "description": "", + "links": [] + }, + "mcp@mHnI19RgZ57XDEIDaHxD0.md": { + "title": "MCP", + "description": "", + "links": [] + }, + "skills@IWubGe3oquSj882QVnhLU.md": { + "title": "Skills", + "description": "", + "links": [] + }, + "agents@w1D3-bSg93ndKK9XJTu7z.md": { + "title": "Agents", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/blockchain.json b/public/roadmap-content/blockchain.json index 5906068949e3..7d8afcb57fac 100644 --- a/public/roadmap-content/blockchain.json +++ b/public/roadmap-content/blockchain.json @@ -1,44 +1,8 @@ { - "MvpHHpbS-EksUfuOKILOq": { - "title": "Basic Blockchain Knowledge", - "description": "A blockchain is a decentralized, distributed, and oftentimes public, digital ledger consisting of records called blocks that is used to record transactions across many computers so that any involved block cannot be altered retroactively, without the alteration of all subsequent blocks.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Cyfirn Updraft | Blockchain Basics", - "url": "https://updraft.cyfrin.io/courses/blockchain-basics", - "type": "course" - }, - { - "title": "Introduction to Blockchain", - "url": "https://chain.link/education-hub/blockchain", - "type": "article" - }, - { - "title": "Blockchain Explained", - "url": "https://www.investopedia.com/terms/b/blockchain.asp", - "type": "article" - }, - { - "title": "An Elementary and Slightly Distilled Introduction to Blockchain", - "url": "https://markpetherbridge.co.uk/blog/an-elementary-and-slightly-distilled-introduction-to-blockchain/", - "type": "article" - }, - { - "title": "Explore top posts about Blockchain", - "url": "https://app.daily.dev/tags/blockchain?ref=roadmapsh", - "type": "article" - }, - { - "title": "How does a blockchain work?", - "url": "https://youtu.be/SSo_EIwHSd4", - "type": "video" - }, - { - "title": "What Is a Blockchain? | Blockchain Basics for Developers", - "url": "https://youtu.be/4ff9esY_4aU", - "type": "video" - } - ] + "introduction@MvpHHpbS-EksUfuOKILOq.md": { + "title": "Introduction", + "description": "", + "links": [] }, "Atv-4Q7edtvfySs_XhgEq": { "title": "Blockchain Structure", @@ -215,52 +179,15 @@ "description": "", "links": [] }, - "bA4V_9AbV3uQi3qrtLWk0": { - "title": "General Blockchain Knowledge", - "description": "A blockchain is a decentralized, distributed ledger technology that records transactions across many computers in such a way that the registered transactions cannot be altered retroactively. This technology is the backbone of cryptocurrencies like Bitcoin and Ethereum, but its applications extend far beyond digital currencies.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Cyfirn Updraft | Blockchain Basics", - "url": "https://updraft.cyfrin.io/courses/blockchain-basics", - "type": "course" - }, - { - "title": "The Complete Course On Understanding Blockchain Technology", - "url": "https://www.udemy.com/course/understanding-blockchain-technology/", - "type": "course" - }, - { - "title": "What is a Blockchain?", - "url": "https://www.wired.com/story/guide-blockchain/", - "type": "article" - }, - { - "title": "Explore top posts about Blockchain", - "url": "https://app.daily.dev/tags/blockchain?ref=roadmapsh", - "type": "article" - }, - { - "title": "Blockchain Technology Explained", - "url": "https://youtu.be/qOVAbKKSH10", - "type": "video" - } - ] + "understanding-blockchain@bA4V_9AbV3uQi3qrtLWk0.md": { + "title": "Understanding Blockchain", + "description": "", + "links": [] }, - "B7niNXMOTbHn_1ixKQ8ri": { - "title": "Mining and Incentive Models", - "description": "Mining is the process of adding transaction details to the Blockchain, like sender address, hash value, etc. The Blockchain contains all the history of the transactions that have taken place in the past for record purposes and it is stored in such a manner that, it can’t be manipulated.\n\nAn Incentive is basically a reward given to a Blockchain Miner for speeding up the transactions and making correct decisions while processing the complete transaction securely.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Ethereum Consensus Mechanisms", - "url": "https://ethereum.org/en/developers/docs/consensus-mechanisms/", - "type": "article" - }, - { - "title": "Solana Staking Rewards", - "url": "https://docs.solana.com/implemented-proposals/staking-rewards", - "type": "article" - } - ] + "mining--incentive-models@B7niNXMOTbHn_1ixKQ8ri.md": { + "title": "Mining & Incentive Models", + "description": "", + "links": [] }, "E9HR_voxQ2a2tvWUuva_p": { "title": "Decentralization vs Trust", @@ -366,62 +293,10 @@ } ] }, - "e_I-4Q6_qIW09Hcn-pgKm": { - "title": "Cryptography", - "description": "Cryptography, or cryptology, is the practice and study of techniques for secure communication in the presence of adversarial behavior. Cryptography is the technique of protecting information and communications by using codes, so that only those intended to receive the information can read and process it. It involves various algorithms and protocols to secure communication by converting plain text into unreadable formats, making it incomprehensible to unauthorized parties.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Cryptography", - "url": "https://en.wikipedia.org/wiki/Cryptography", - "type": "article" - }, - { - "title": "What is Cryptography", - "url": "https://www.synopsys.com/glossary/what-is-cryptography.html", - "type": "article" - }, - { - "title": "Explore top posts about Cryptography", - "url": "https://app.daily.dev/tags/cryptography?ref=roadmapsh", - "type": "article" - }, - { - "title": "Asymmetric Encryption - Simply Explained", - "url": "https://youtu.be/AQDCe585Lnc", - "type": "video" - }, - { - "title": "What is Cryptography?", - "url": "https://www.youtube.com/watch?v=6_Cxj5WKpIw", - "type": "video" - } - ] - }, - "_BkpK9qgp9up8nXNH7q4m": { - "title": "Consensus Protocols", - "description": "Consensus for blockchain is a procedure in which the peers of a Blockchain network reach agreement about the present state of the data in the network. Through this, consensus algorithms establish reliability and trust in the Blockchain network.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Consensus Mechanisms in Blockchain: A Beginner’s Guide", - "url": "https://crypto.com/university/consensus-mechanisms-explained", - "type": "article" - }, - { - "title": "Consensus Mechanisms", - "url": "https://ethereum.org/en/developers/docs/consensus-mechanisms/", - "type": "article" - }, - { - "title": "What Is a Consensus Mechanism?", - "url": "https://www.coindesk.com/learn/what-is-a-consensus-mechanism/", - "type": "article" - }, - { - "title": "Consensus Algorithm", - "url": "https://www.cyfrin.io/glossary/consensus-algorithm", - "type": "article" - } - ] + "cryptography--hashing@e_I-4Q6_qIW09Hcn-pgKm.md": { + "title": "Cryptography & Hashing", + "description": "", + "links": [] }, "nNPa6jKRUaitmHwBip_LE": { "title": "Blockchain Interoperability", @@ -485,27 +360,6 @@ } ] }, - "ug4FB4RXItHU0ADnisvve": { - "title": "TON", - "description": "TON is a fully decentralized layer-1 blockchain designed by Telegram to onboard billions of users. It boasts ultra-fast transactions, tiny fees, easy-to-use apps, and is environmentally friendly.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Start Building on The Open Network", - "url": "https://ton.org/dev", - "type": "article" - }, - { - "title": "TON Introduction", - "url": "https://ton.org/docs/learn/introduction", - "type": "article" - }, - { - "title": "Blockchain Analysis", - "url": "https://ton.org/analysis", - "type": "article" - } - ] - }, "tSJyp46rkJcOtDqVpJX1s": { "title": "EVM-Based", "description": "The Ethereum Virtual Machine (EVM) is a dedicated software virtual stack that executes smart contract bytecode and is integrated into each Ethereum node. Simply said, EVM is a software framework that allows developers to construct Ethereum-based decentralized applications (DApps). All Ethereum accounts and smart contracts are stored on this virtual computer. Many blockchains have forked the Ethereum blockchain and added functionality on top, these blockchains are referred to as EVM-based blockchains.\n\nVisit the following resources to learn more:", @@ -532,21 +386,10 @@ } ] }, - "EQgb4LqXnyq3gOX7Fb85s": { - "title": "Blockchains", - "description": "Blockchain systems vary considerably in their design, particularly with regard to the consensus mechanisms used to perform the essential task of verifying network data.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Types of Blockchains: PoW, PoS, and Private", - "url": "https://www.gemini.com/cryptopedia/blockchain-types-pow-pos-private", - "type": "article" - }, - { - "title": "Explore top posts about Blockchain", - "url": "https://app.daily.dev/tags/blockchain?ref=roadmapsh", - "type": "article" - } - ] + "types-of-blockchains@EQgb4LqXnyq3gOX7Fb85s.md": { + "title": "Types of Blockchains", + "description": "", + "links": [] }, "JLXIbP-y8C2YktIk3R12m": { "title": "Ethereum", @@ -610,31 +453,10 @@ } ] }, - "sJj-6wG5KjjzYYia_eo63": { - "title": "Binance Smart Chain", - "description": "Binance Smart Chain (also known as BNB Chain) is a blockchain project initiated by Binance as a central piece of their cryptocurrency exchange, which is the largest exchange in the world in terms of daily trading volume of cryptocurrencies.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "BNB Chain", - "url": "https://www.binance.com/en/blog/all/bnb-chain-blockchain-for-exchanging-the-world-304219301536473088", - "type": "article" - }, - { - "title": "Binance Website", - "url": "https://www.binance.com/en", - "type": "article" - }, - { - "title": "Binance Whitepaper", - "url": "https://www.exodus.com/assets/docs/binance-coin-whitepaper.pdf", - "type": "article" - }, - { - "title": "Explore top posts about Crypto", - "url": "https://app.daily.dev/tags/crypto?ref=roadmapsh", - "type": "article" - } - ] + "bnb-chain@sJj-6wG5KjjzYYia_eo63.md": { + "title": "BNB Chain", + "description": "", + "links": [] }, "UQ9AejYV6_Sk6ZJkXYWf7": { "title": "Gnosis Chain", @@ -657,22 +479,6 @@ } ] }, - "PkRAYBZQAUAHxWEeCCX4U": { - "title": "Huobi Eco Chain", - "description": "Huobi's ECO Chain (also known as HECO) is a public blockchain that provides developers with a low-cost onchain environment for running decentralized apps (dApps) of smart contracts and storing digital assets.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Introduction to HECO Chain", - "url": "https://docs.hecochain.com/#/", - "type": "article" - }, - { - "title": "Huobi Eco Chain whitepaper", - "url": "https://www.hecochain.com/developer.133bd45.pdf", - "type": "article" - } - ] - }, "txQ9U1wcnZkQVh6B49krk": { "title": "Avalanche", "description": "Avalanche describes itself as an “open, programmable smart contracts platform for decentralized applications.” What does that mean? Like many other decentralized protocols, Avalanche has its own token called AVAX, which is used to pay transaction fees and can be staked to secure the network.\n\nVisit the following resources to learn more:", @@ -876,47 +682,15 @@ } ] }, - "ixTIn2Uhs-i5-UPt9jKAa": { + "arbitrum@A_yVDg-6b42ynmh71jk1V.md": { "title": "Arbitrum", - "description": "Arbitrum aims to reduce transaction fees and congestion by moving as much computation and data storage off of Ethereum's main blockchain (layer 1) as it can. Storing data off of Ethereum's blockchain is known as Layer 2 scaling solutions.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Arbitrum - The Future of Ethereum", - "url": "https://arbitrum.io/", - "type": "article" - }, - { - "title": "Getting Started with Arbitrum", - "url": "https://docs.arbitrum.io/welcome/get-started", - "type": "article" - }, - { - "title": "Arbitrum Whitepaper", - "url": "https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-kalodner.pdf", - "type": "article" - } - ] + "description": "", + "links": [] }, - "Ib9STGxQa8yeoB-GFeGDE": { - "title": "Moonbeam / Moonriver", - "description": "Moonbeam is a Polkadot network parachain that promises cross-chain interoperability between the Ethereum and Polkadot . More specifically, Moonbeam is a smart contract platform that enables developers to move dApps between the two networks without having to rewrite code or redeploy infrastructure. Moonriver is an incentivized testnet. It enables developers to create, test, and adjust their protocols prior to launching on Moonbeam. Moonbeam is the mainnet of the ecosystem.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Moonbeam", - "url": "https://moonbeam.network/", - "type": "article" - }, - { - "title": "About Moonbeam", - "url": "https://docs.moonbeam.network/learn/platform/networks/moonbeam/", - "type": "article" - }, - { - "title": "Moonbeam Vision", - "url": "https://docs.moonbeam.network/learn/platform/vision/", - "type": "article" - } - ] + "optimism@EK5TqRRn15ExsGc4gfMLu.md": { + "title": "Optimism", + "description": "", + "links": [] }, "hlcavpstLnXkJcjccQUL8": { "title": "TVM-Based", @@ -1350,26 +1124,10 @@ } ] }, - "lXukWXEatsF87EWFSYyOO": { - "title": "IDEs", - "description": "An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Integrated Development Environments", - "url": "https://ethereum.org/en/developers/docs/ides/", - "type": "article" - }, - { - "title": "Remix - Ethereum IDE & community", - "url": "https://remix-project.org/", - "type": "article" - }, - { - "title": "Explore top posts about DevTools", - "url": "https://app.daily.dev/tags/devtools?ref=roadmapsh", - "type": "article" - } - ] + "remix@lXukWXEatsF87EWFSYyOO.md": { + "title": "Remix", + "description": "", + "links": [] }, "S68IUKs0k_FFHEH97xxs7": { "title": "Crypto Faucets", @@ -1418,27 +1176,6 @@ } ] }, - "KRtEN0845lV5e85SOi6oZ": { - "title": "Smart Contract Frameworks", - "description": "Building a full-fledged dapp requires different pieces of technology. Software frameworks include many of the needed features or provide easy plugin systems to pick the tools you desire.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "dApp Development Frameworks", - "url": "https://ethereum.org/en/developers/docs/frameworks/", - "type": "article" - }, - { - "title": "A Definitive List of Ethereum Developer Tools - Frameworks", - "url": "https://media.consensys.net/an-definitive-list-of-ethereum-developer-tools-2159ce865974#frameworks", - "type": "article" - }, - { - "title": "Top 10 Smart Contract Developer Tools You Need for 2022", - "url": "https://medium.com/better-programming/top-10-smart-contract-developer-tools-you-need-for-2022-b763f5df689a", - "type": "article" - } - ] - }, "l110d4NqTQt9lfEoxqXMX": { "title": "Hardhat", "description": "Hardhat is an Ethereum development environment. It allows users to compile contracts and run them on a development network. Get Solidity stack traces, console.log and more.\n\nVisit the following resources to learn more:", @@ -1643,27 +1380,6 @@ } ] }, - "n3pipnNb76aaQeUwrDLk_": { - "title": "Tools", - "description": "Blockchain and smart contract technology is fairly new, therefore, you should expect constant changes in the security landscape, as new bugs and security risks are discovered, and new best practices are developed. Keeping track of this constantly moving landscape proves difficult, so using tools to aid this mission is important. The cost of failing to properly secure smart contracts can be high, and because change can be difficult, we must make use of these tools.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Best Blockchain Tools", - "url": "https://101blockchains.com/best-blockchain-tools/", - "type": "article" - }, - { - "title": "Top 10 Tools for Blockchain Development", - "url": "https://www.blockchain-council.org/blockchain/top-10-tools-for-blockchain-development/", - "type": "article" - }, - { - "title": "Cyfrin Updraft | Security Tools", - "url": "https://updraft.cyfrin.io/courses/security/audit/tools", - "type": "video" - } - ] - }, "YA3-7EZBRW-T-8HuVI7lk": { "title": "Slither", "description": "Slither is a Solidity static analysis framework written in Python 3. It runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. Slither enables developers to find vulnerabilities, enhance their code comprehension, and quickly prototype custom analyses.\n\nVisit the following resources to learn more:", @@ -1685,32 +1401,10 @@ } ] }, - "twR3UdzUNSztjpwbAUT4F": { - "title": "Manticore", - "description": "Manticore is a symbolic execution tool for analysis of smart contracts and binaries.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Manticore Docs", - "url": "https://manticore.readthedocs.io/", - "type": "article" - } - ] - }, - "XIgczUc3yKo6kw-_3gskC": { - "title": "MythX", - "description": "MythX is a comprehensive smart contract security analysis tools developed by Consensys. It allows users to detect security vulnerabilities in Ethereum smart contracts throughout the development life cycle as well as analyze Solidity dapps for security holes and known smart contract vulnerabilities.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "MythX", - "url": "https://mythx.io/", - "type": "article" - }, - { - "title": "MythX Documentation", - "url": "https://docs.mythx.io/", - "type": "article" - } - ] + "diligent-fuzzing@twR3UdzUNSztjpwbAUT4F.md": { + "title": "Diligent Fuzzing", + "description": "", + "links": [] }, "U4H62lVac8wIgxNJ3N3ga": { "title": "Echidna", @@ -1728,17 +1422,6 @@ } ] }, - "fbESHQGYqxKRi-5DW8TY3": { - "title": "Management Platforms", - "description": "Managing smart contracts in a production environment (mainnet) can prove difficult as users must keep track of different versions, blockchains, deployments, etc. Using a tool for this process eliminates a lot of the risk that comes with manual tracking.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "What is a Blockchain Platform?", - "url": "https://www.bitdegree.org/crypto/tutorials/blockchain-platform", - "type": "article" - } - ] - }, "qox-x_q-Q7aWcNFWD7RkT": { "title": "OpenZeppelin", "description": "OpenZeppelin Contracts helps you minimize risk by using battle-tested libraries of smart contracts for Ethereum and other blockchains. It includes the most used implementations of ERC standards.\n\nVisit the following resources to learn more:", @@ -1750,27 +1433,6 @@ } ] }, - "Fs9rcEh_f9fJ2tF-bkAUE": { - "title": "Version Control Systems", - "description": "Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Git", - "url": "https://git-scm.com/", - "type": "article" - }, - { - "title": "Mercurial", - "url": "https://www.mercurial-scm.org/", - "type": "article" - }, - { - "title": "What is Version Control?", - "url": "https://www.atlassian.com/git/tutorials/what-is-version-control", - "type": "article" - } - ] - }, "gpS5CckcQZX3TMFQ2jtIL": { "title": "Git", "description": "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.\n\nVisit the following resources to learn more:", @@ -1812,27 +1474,6 @@ } ] }, - "oSK3MRQD_4j1gGDORN7RO": { - "title": "Repo Hosting Services", - "description": "When working on a team, you often need a remote place to put your code so others can access it, create their own branches, and create or review pull requests. These services often include issue tracking, code review, and continuous integration features. A few popular choices are GitHub, GitLab, BitBucket, and AWS CodeCommit.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "GitHub", - "url": "https://github.com/features/", - "type": "article" - }, - { - "title": "GitLab", - "url": "https://about.gitlab.com/", - "type": "article" - }, - { - "title": "BitBucket", - "url": "https://bitbucket.org/product/guides/getting-started/overview", - "type": "article" - } - ] - }, "GOgeaQoRvqg-7mAfL_A8t": { "title": "GitHub", "description": "GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.\n\nVisit the following resources to learn more:", @@ -1931,36 +1572,10 @@ } ] }, - "SXXvFtf_7Rx64cHSEWxMS": { - "title": "dApps - Decentralized Applications", - "description": "A decentralized application (dApp) is an application that can operate autonomously, through the use of smart contracts that run on a blockchain. Like traditional applications, dApps provide some function or utility to its users.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Introduction to dApps", - "url": "https://ethereum.org/en/developers/docs/dapps/", - "type": "article" - }, - { - "title": "What Is a Dapp? Decentralized Apps Explained", - "url": "https://www.coindesk.com/learn/what-is-a-dapp-decentralized-apps-explained/", - "type": "article" - }, - { - "title": "Cyfrin Glossary | dApp", - "url": "https://www.cyfrin.io/glossary/dapp", - "type": "article" - }, - { - "title": "Explore Top dApps on Ethereum and its Layer 2s", - "url": "https://www.ethereum-ecosystem.com/apps", - "type": "article" - }, - { - "title": "Explore Top Ethereum dApps", - "url": "https://eth.blockscout.com/apps", - "type": "article" - } - ] + "dapps@oczIhxMB7WOhcAocIa2Ew.md": { + "title": "dApps", + "description": "", + "links": [] }, "aATSuiqPG-yctr3ChEBa_": { "title": "Applicability", @@ -2141,21 +1756,10 @@ } ] }, - "pJhR9OQo8YFQmAZXQbikJ": { - "title": "Moralis", - "description": "Moralis provides a single workflow for building high performance dapps. Fully compatible with your favorite web3 tools and services.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Moralis", - "url": "https://moralis.io/", - "type": "article" - }, - { - "title": "Explore top posts about Moralis", - "url": "https://app.daily.dev/tags/moralis?ref=roadmapsh", - "type": "article" - } - ] + "pokt-network@pJhR9OQo8YFQmAZXQbikJ.md": { + "title": "Pokt Network", + "description": "", + "links": [] }, "FGih8w9We52PHpBnnGO6H": { "title": "Quicknode", @@ -2834,69 +2438,119 @@ } ] }, - "ecT4W5z8Vq9pXjnuhMdpl": { - "title": "Why it matters?", - "description": "The nature of blockchain allows for trustless systems to be built on top of it. Users don’t rely on a centralized group of people, such as a bank, to make decisions and allow transactions to flow through. Because the system is decentralized, users know that transactions will never be denied for non-custodial reasons. This decentralization enables use-cases that were previously impossible, such as parametric insurance, decentralized finance, and decentralized organizations (DAOs), among a few. This allows developers to build products that provide immediate value without having to go through a bureaucratic process of applications, approvals, and general red tape.\n\nVisit the following resources to learn more:", + "zvUCR0KeigEi9beqFpwny": { + "title": "Storage", + "description": "Unlike a centralized server operated by a single company or organization, decentralized storage systems consist of a peer-to-peer network of user-operators who hold a portion of the overall data, creating a resilient file storage sharing system.\n\nVisit the following resources to learn more:", "links": [ { - "title": "Why Blockchain?", - "url": "https://chain.link/education-hub/blockchain", + "title": "Blockchain Storage", + "url": "https://www.techtarget.com/searchstorage/definition/blockchain-storage", "type": "article" }, { - "title": "What Is The Blockchain And Why Does It Matter?", - "url": "https://www.forbes.com/sites/theyec/2020/05/18/what-is-the-blockchain-and-why-does-it-matter/", + "title": "Decentralized Storage", + "url": "https://ethereum.org/en/developers/docs/storage/", "type": "article" }, { - "title": "Web3/Crypto: Why Bother?", - "url": "https://continuations.com/post/671863718643105792/web3crypto-why-bother", + "title": "How IPFS works", + "url": "https://docs.ipfs.tech/concepts/how-ipfs-works/", "type": "article" }, { - "title": "Why is Blockchain Important and Why Does it Matter", - "url": "https://www.simplilearn.com/tutorials/blockchain-tutorial/why-is-blockchain-important", + "title": "Data Locations - Storage, Memory, and Calldata", + "url": "https://www.cyfrin.io/glossary/data-locations-storage-memory-and-calldata-solidity-code-example", "type": "article" }, { - "title": "Explore top posts about Blockchain", - "url": "https://app.daily.dev/tags/blockchain?ref=roadmapsh", + "title": "Explore top posts about Storage", + "url": "https://app.daily.dev/tags/storage?ref=roadmapsh", "type": "article" - }, - { - "title": "Cyfirn Updraft | The Purpose of Smart Contracts", - "url": "https://updraft.cyfrin.io/courses/blockchain-basics/basics/the-purpose-of-smart-contracts", - "type": "video" } ] }, - "zvUCR0KeigEi9beqFpwny": { - "title": "Storage", - "description": "Unlike a centralized server operated by a single company or organization, decentralized storage systems consist of a peer-to-peer network of user-operators who hold a portion of the overall data, creating a resilient file storage sharing system.\n\nVisit the following resources to learn more:", + "blockchain-networks@nuq_juiBSecI7PwERR_4R.md": { + "title": "Blockchain Networks", + "description": "", + "links": [] + }, + "bft@Bj3T_4lfr0Yianuwr3pDN.md": { + "title": "BFT", + "description": "", + "links": [] + }, + "poh@-bul5ZMIcZf8RNd4kV54s.md": { + "title": "PoH", + "description": "", + "links": [] + }, + "utxo-based@C-SpX4Rzk5Um2F_X5ZdBr.md": { + "title": "UTXO-Based", + "description": "", + "links": [] + }, + "bitcoin@tmI1PrE4fInrGB3-jMrFW.md": { + "title": "Bitcoin", + "description": "", + "links": [] + }, + "cardano@IzBZnvl8lqVKsog-IGwtV.md": { + "title": "Cardano", + "description": "", + "links": [] + }, + "base@ixTIn2Uhs-i5-UPt9jKAa.md": { + "title": "Base", + "description": "", + "links": [] + }, + "starknet@Ib9STGxQa8yeoB-GFeGDE.md": { + "title": "Starknet", + "description": "", + "links": [] + }, + "vs-code@J4ev2h5cipcwh3OcuBdMU.md": { + "title": "VS Code", + "description": "", + "links": [] + }, + "environmental-considerations@-dIX_3qo97B418_BmJ5wP.md": { + "title": "Environmental Considerations", + "description": "", + "links": [] + }, + "pos@WNPNoDZ57M2QHEIIU-Bpa.md": { + "title": "PoS", + "description": "", + "links": [] + }, + "pow@XbO1CKYZ6OVqVjtrcHKq2.md": { + "title": "PoW", + "description": "", + "links": [] + }, + "_BkpK9qgp9up8nXNH7q4m": { + "title": "Consensus Protocols", + "description": "Consensus for blockchain is a procedure in which the peers of a Blockchain network reach agreement about the present state of the data in the network. Through this, consensus algorithms establish reliability and trust in the Blockchain network.\n\nVisit the following resources to learn more:", "links": [ { - "title": "Blockchain Storage", - "url": "https://www.techtarget.com/searchstorage/definition/blockchain-storage", - "type": "article" - }, - { - "title": "Decentralized Storage", - "url": "https://ethereum.org/en/developers/docs/storage/", + "title": "Consensus Mechanisms in Blockchain: A Beginner’s Guide", + "url": "https://crypto.com/university/consensus-mechanisms-explained", "type": "article" }, { - "title": "How IPFS works", - "url": "https://docs.ipfs.tech/concepts/how-ipfs-works/", + "title": "Consensus Mechanisms", + "url": "https://ethereum.org/en/developers/docs/consensus-mechanisms/", "type": "article" }, { - "title": "Data Locations - Storage, Memory, and Calldata", - "url": "https://www.cyfrin.io/glossary/data-locations-storage-memory-and-calldata-solidity-code-example", + "title": "What Is a Consensus Mechanism?", + "url": "https://www.coindesk.com/learn/what-is-a-consensus-mechanism/", "type": "article" }, { - "title": "Explore top posts about Storage", - "url": "https://app.daily.dev/tags/storage?ref=roadmapsh", + "title": "Consensus Algorithm", + "url": "https://www.cyfrin.io/glossary/consensus-algorithm", "type": "article" } ] diff --git a/public/roadmap-content/computer-science.json b/public/roadmap-content/computer-science.json index 3425ab9271af..067c1bb156f1 100644 --- a/public/roadmap-content/computer-science.json +++ b/public/roadmap-content/computer-science.json @@ -3034,22 +3034,6 @@ } ] }, - "GZI8EsEqiMJX3fSbO_E-7": { - "title": "CAP Theorem", - "description": "The CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than two out of Consistency, Availability and Partition Tolerance.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "CAP Theorem", - "url": "https://en.wikipedia.org/wiki/CAP_theorem", - "type": "article" - }, - { - "title": "What is CAP Theorem?", - "url": "https://www.youtube.com/watch?v=_RbsFXWRZ10", - "type": "video" - } - ] - }, "LCPEzpyAuHY3ggN3nYrNN": { "title": "Queues", "description": "Messaging queues are a common way to decouple systems. They are used to decouple the producer of a message from the consumer of a message. This allows the producer to send a message and not have to wait for the consumer to process it. It also allows the consumer to process the message at their own pace.\n\nVisit the following resources to learn more:", @@ -4284,5 +4268,15 @@ "type": "video" } ] + }, + "small-o@2cg5PogENPhiYFXQnV9xC.md": { + "title": "Small O", + "description": "", + "links": [] + }, + "small-omega@dUBRG_5aUYlICsjPbRlTf.md": { + "title": "Small Omega", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/cpp.json b/public/roadmap-content/cpp.json index 39a89c0d3e3e..c2438604aa3d 100644 --- a/public/roadmap-content/cpp.json +++ b/public/roadmap-content/cpp.json @@ -630,9 +630,9 @@ "description": "C++20 is the latest standard of the C++ programming language, which brings significant improvements and new features to the language. This version is aimed at facilitating better software development practices and enabling developers to write more efficient, readable, and maintainable code.\n\nHere are some of the key features introduced in C++20:\n\nConcepts\n--------\n\nConcepts are a way to enforce specific requirements on template parameters, allowing you to write more expressive and understandable code. They improve the error messages when using templates and ensure that the template parameters fulfill specific criteria.\n\n template \n concept Addable = requires (T a, T b) {\n { a + b } -> std::same_as;\n };\n \n template \n T add(T a, T b) {\n return a + b;\n }\n \n\nRanges\n------\n\nRanges provide a new way to work with sequences of values, enhancing the power and expressiveness of the Standard Library algorithms. The range-based algorithms make it easier and more convenient to work with sequences.\n\n #include \n #include \n #include \n #include \n \n int main() {\n std::vector numbers = { 1, 2, 3, 4, 5 };\n \n auto even_numbers = numbers | std::views::filter([](int n) { return n % 2 == 0; });\n \n for (int n : even_numbers) {\n std::cout << n << ' ';\n }\n }\n \n\nCoroutines\n----------\n\nCoroutines are a new way to write asynchronous and concurrent code with improved readability. They allow functions to be suspended and resumed, enabling you to write more efficient, non-blocking code.\n\n #include \n #include \n #include \n \n std::future async_value(int value) {\n co_await std::chrono::seconds(1);\n co_return value * 2;\n }\n \n int main() {\n auto result = async_value(42);\n std::cout << \"Result: \" << result.get() << '\\n';\n }\n \n\nThe `constexpr` and `consteval` Keywords\n----------------------------------------\n\nBoth `constexpr` and `consteval` are related to compile-time evaluation. Functions marked with `constexpr` can be executed at compile-time or runtime, while functions marked with `consteval` can only be executed at compile-time.\n\n constexpr int add(int a, int b) {\n return a + b;\n }\n \n consteval int square(int x) {\n return x * x;\n }\n \n int main() {\n constexpr int result1 = add(3, 4); // evaluated at compile-time\n int result2 = add(5, 6); // evaluated at runtime\n constexpr int result3 = square(7); // evaluated at compile-time\n }\n \n\nThese are just some of the highlights of the C++20 standard. It also includes many other features and improvements, like structured bindings, improved lambdas, and new standard library components. Overall, C++20 makes it easier for developers to write clean, efficient, and expressive code.", "links": [] }, - "sxbbKtg7kMNbkx7fXhjR9": { - "title": "Newest", - "description": "C++20 is the newest standard of the C++ programming language, which was officially published in December 2020. It introduces many new features, enhancements, and improvements over the previous standards. Here is a brief summary of some key features in C++20.\n\n* **Concepts**: Concepts provide a way to specify constraints on template parameters, ensuring that they meet a specific set of requirements. This allows for better compile-time error messages and code readability.\n \n Example:\n \n template\n concept Printable = requires(T x) {\n {std::cout << x};\n };\n \n template\n void print(const T& x) {\n std::cout << x << '\\n';\n }\n \n \n* **Ranges**: Ranges build on the iterator concept and provide a more usable and composable framework for dealing with sequences of values. They simplify the way algorithms can be applied to collections of data.\n \n Example:\n \n #include \n #include \n #include \n \n int main() {\n std::vector numbers{1, 2, 3, 4, 5};\n auto even_view = numbers | std::views::filter([](int n) { return n % 2 == 0; });\n \n for (int n : even_view) {\n std::cout << n << ' ';\n }\n }\n \n \n* **Coroutines**: Coroutines offer a way to split complex, long-running functions into smaller, more manageable chunks, allowing them to be suspended and resumed at specific points.\n \n Example:\n \n #include \n #include \n \n std::generator generator() {\n for (int i = 0; i < 5; ++i)\n co_yield i;\n }\n \n int main() {\n for (int value : generator())\n std::cout << value << ' ';\n }\n \n \n* **Lambdas with template parameters**: C++20 enables using `auto` as a lambda parameter, allowing for generic lambdas with templated parameters.\n \n Example:\n \n auto sum = [](auto a, auto b) {\n return a + b;\n };\n \n int res1 = sum(1, 2); // int\n double res2 = sum(1.0, 2.0); // double\n \n \n* **Constexpr enhancements**: `constexpr` support is extended with additional features, such as `constexpr` dynamic allocations, `constexpr` try-catch blocks, and `constexpr` lambdas.\n \n Example:\n \n struct Point {\n constexpr Point(int x, int y): x_{x}, y_{y} {}\n int x_, y_;\n };\n \n constexpr auto create_points() {\n Point points[3]{};\n \n for (int i = 0; i < 3; ++i) {\n points[i] = Point{i, i * i};\n }\n \n return points;\n }\n \n constexpr auto points = create_points();\n \n \n\nThere are many other features in C++20, such as new standard library improvements, `std::format`, improvements to compile-time programming, and more. These are just a few highlights that showcase the versatility and power of the newest standard of C++.", + "c-23@sxbbKtg7kMNbkx7fXhjR9.md": { + "title": "C++ 23", + "description": "", "links": [] }, "PPg0V5EzGBeJsysg1215V": { diff --git a/public/roadmap-content/data-analyst.json b/public/roadmap-content/data-analyst.json index 38cf20ee6d47..91606cfe06b7 100644 --- a/public/roadmap-content/data-analyst.json +++ b/public/roadmap-content/data-analyst.json @@ -472,75 +472,11 @@ } ] }, - "8OXmF2Gn6TYJotBRvDjqA": { - "title": "Pandas", - "description": "Pandas is a widely acknowledged and highly useful data manipulation library in the world of data analysis. Known for its robust features like data cleaning, wrangling and analysis, pandas has become one of the go-to tools for data analysts. Built on NumPy, it provides high-performance, easy-to-use data structures and data analysis tools. In essence, its flexibility and versatility make it a critical part of the data analyst's toolkit, as it holds the capability to cater to virtually every data manipulation task.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Pandas", - "url": "https://pandas.pydata.org/", - "type": "article" - }, - { - "title": "NumPy vs Pandas", - "url": "https://www.youtube.com/watch?v=KHoEbRH46Zk", - "type": "video" - } - ] - }, "l1SnPc4EMqGdaIAhIQfrT": { "title": "Data Visualisation Libraries", "description": "Data visualization libraries are crucial in data science for transforming complex datasets into clear and interpretable visual representations, facilitating better understanding and communication of data insights. In Python, several libraries are widely used for this purpose. Matplotlib is a foundational library that offers comprehensive tools for creating static, animated, and interactive plots. Seaborn, built on top of Matplotlib, provides a high-level interface for drawing attractive and informative statistical graphics with minimal code. Plotly is another powerful library that allows for the creation of interactive and dynamic visualizations, which can be easily embedded in web applications. Additionally, libraries like Bokeh and Altair offer capabilities for creating interactive plots and dashboards, enhancing exploratory data analysis and the presentation of data findings. Together, these libraries enable data scientists to effectively visualize trends, patterns, and outliers in their data, making the analysis more accessible and actionable.\n\nLearn more from the following resources:", "links": [] }, - "uGkXxdMXUMY-3fQFS1jK8": { - "title": "Matplotlib", - "description": "Matplotlib is a paramount data visualization library used extensively by data analysts for generating a wide array of plots and graphs. Through Matplotlib, data analysts can convey results clearly and effectively, driving insights from complex data sets. It offers a hierarchical environment which is very natural for a data scientist to work with. Providing an object-oriented API, it allows for extensive customization and integration into larger applications. From histograms, bar charts, scatter plots to 3D graphs, the versatility of Matplotlib assists data analysts in the better comprehension and compelling representation of data.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Matplotlib", - "url": "https://matplotlib.org/", - "type": "article" - }, - { - "title": "Learn Matplotlib in 6 minutes", - "url": "https://www.youtube.com/watch?v=nzKy9GY12yo", - "type": "video" - } - ] - }, - "y__UHXe2DD-IB7bvMF1-X": { - "title": "Dplyr", - "description": "Dplyr is a powerful and popular toolkit for data manipulation in R. As a data analyst, this library provides integral functions to manipulate, clean, and process data efficiently. It has been designed to be easy and intuitive, ensuring a robust and consistent syntax. Dplyr ensures data reliability and fast processing, essential for analysts dealing with large datasets. With a strong focus on efficiency, dplyr functions like select, filter, arrange, mutate, summarise, and group\\_by optimise data analysis operations, making data manipulation a smoother and hassle-free procedure for data analysts.\n\nLearn more from the following resources:", - "links": [ - { - "title": "dplyr", - "url": "https://dplyr.tidyverse.org/", - "type": "article" - }, - { - "title": "Dplyr Essentials", - "url": "https://www.youtube.com/watch?v=Gvhkp-Yw65U", - "type": "video" - } - ] - }, - "E0hIgQEeZlEidr4HtUFrL": { - "title": "Ggplot2", - "description": "When it comes to data visualization in R programming, ggplot2 stands tall as one of the primary tools for data analysts. This data visualization library, which forms part of the tidyverse suite of packages, facilitates the creation of complex and sophisticated visual narratives. With its grammar of graphics philosophy, ggplot2 enables analysts to build graphs and charts layer by layer, thereby offering detailed control over graphical features and design. Its versatility in creating tailored and aesthetically pleasing graphics is a vital asset for any data analyst tackling exploratory data analysis, reporting, or dashboard building.\n\nLearn more from the following resources:", - "links": [ - { - "title": "ggplot2", - "url": "https://ggplot2.tidyverse.org/", - "type": "article" - }, - { - "title": "Make beautiful graphs in R", - "url": "https://www.youtube.com/watch?v=qnw1xDnt_Ec", - "type": "video" - } - ] - }, "_sjXCLHHTbZromJYn6fnu": { "title": "Data Collection", "description": "Data collection is a foundational process that entails gathering relevant data from various sources. This data can be quantitative or qualitative and may be sourced from databases, online platforms, customer feedback, among others. The gathered information is then cleaned, processed, and interpreted to extract meaningful insights. A data analyst performs this whole process carefully, as the quality of data is paramount to ensuring accurate analysis, which in turn informs business decisions and strategies. This highlights the importance of an excellent understanding, proper tools, and precise techniques when it comes to data collection in data analysis.\n\nLearn more from the following resources:", @@ -750,21 +686,10 @@ } ] }, - "Fyqg3MRcwY7g-Q3gjiqwK": { - "title": "Distribution Space", - "description": "In the realm of Data Analysis, the distribution shape is considered as an essential component under descriptive analysis. A data analyst uses the shape of the distribution to understand the spread and trend of the data set. It aids in identifying the skewness (asymmetry) and kurtosis (the 'tailedness') of the data and helps to reveal meaningful patterns that standard statistical measures like mean or median might not capture. The distribution shape can provide insights into data’s normality and variability, informing decisions about which statistical methods are appropriate for further analysis.\n\nLearn more from the following resources:", - "links": [ - { - "title": "Shapes of distributions", - "url": "https://online.stat.psu.edu/stat414/lesson/13/13.5", - "type": "course" - }, - { - "title": "Shapes of Distributions: Definitions, Examples", - "url": "https://www.statisticshowto.com/shapes-of-distributions/", - "type": "article" - } - ] + "distribution-shape@Fyqg3MRcwY7g-Q3gjiqwK.md": { + "title": "Distribution Shape", + "description": "", + "links": [] }, "923KGEUG9ofBm7dYkkrxz": { "title": "Mean", @@ -814,22 +739,6 @@ } ] }, - "yn1sstYMO9du3rpfQqNs9": { - "title": "Average", - "description": "When focusing on data analysis, understanding key statistical concepts is crucial. Amongst these, central tendency is a foundational element. Central Tendency refers to the measure that determines the center of a distribution. The average is a commonly used statistical tool by which data analysts discern trends and patterns. As one of the most recognized forms of central tendency, figuring out the \"average\" involves summing all values in a data set and dividing by the number of values. This provides analysts with a 'typical' value, around which the remaining data tends to cluster, facilitating better decision-making based on existing data.\n\nLearn more from the following resources:", - "links": [ - { - "title": "How to Calculate the Average", - "url": "https://support.microsoft.com/en-gb/office/calculate-the-average-of-a-group-of-numbers-e158ef61-421c-4839-8290-34d7b1e68283#:~:text=Average%20This%20is%20the%20arithmetic,by%206%2C%20which%20is%205.", - "type": "article" - }, - { - "title": "Average Formula", - "url": "https://www.cuemath.com/average-formula/", - "type": "article" - } - ] - }, "tSxtyJhL5wjU0XJcjsJmm": { "title": "Range", "description": "The concept of Range refers to the spread of a dataset, primarily in the realm of statistics and data analysis. This measure is crucial for a data analyst as it provides an understanding of the variability amongst the numbers within a dataset. Specifically in a role such as Data Analyst, understanding the range and dispersion aids in making more precise analyses and predictions. Understanding the dispersion within a range can highlight anomalies, identify standard norms, and form the foundation for statistical conclusions like the standard deviation, variance, and interquartile range. It allows for the comprehension of the reliability and stability of particular datasets, which can help guide strategic decisions in many industries. Therefore, range is a key concept that every data analyst must master.\n\nLearn more from the following resources:", diff --git a/public/roadmap-content/devops.json b/public/roadmap-content/devops.json index 7e3f302a97e7..a7b046a6b323 100644 --- a/public/roadmap-content/devops.json +++ b/public/roadmap-content/devops.json @@ -2193,32 +2193,6 @@ } ] }, - "-pGF3soruWWxwE4LxE5Vk": { - "title": "Travis CI", - "description": "Travis CI is a cloud-based continuous integration (CI) service that automatically builds and tests code changes in GitHub repositories. It helps streamline the software development process by automatically running tests and building applications whenever code is pushed or a pull request is made. Travis CI supports a variety of programming languages and provides integration with other tools and services, offering features like build matrix configurations, deployment pipelines, and notifications. Its ease of setup and integration with GitHub makes it a popular choice for open-source and private projects looking to implement CI/CD practices.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Travis CI Documentation", - "url": "https://docs.travis-ci.com/", - "type": "article" - }, - { - "title": "Travis CI Tutorial", - "url": "https://docs.travis-ci.com/user/tutorial/", - "type": "article" - }, - { - "title": "Explore top posts about CI/CD", - "url": "https://app.daily.dev/tags/cicd?ref=roadmapsh", - "type": "article" - }, - { - "title": "Travis CI Complete Tutorial for DevOps Engineers", - "url": "https://www.youtube.com/watch?v=xLWDOLhTH38", - "type": "video" - } - ] - }, "1-JneOQeGhox-CKrdiquq": { "title": "Circle CI", "description": "CircleCI is a popular continuous integration and continuous delivery (CI/CD) platform that automates the build, test, and deployment processes of software projects. It supports a wide range of programming languages and integrates with various version control systems, primarily GitHub and Bitbucket. CircleCI uses a YAML configuration file to define pipelines, allowing developers to specify complex workflows, parallel job execution, and custom environments. It offers features like caching, artifact storage, and Docker layer caching to speed up builds. With its cloud-based and self-hosted options, CircleCI provides scalable solutions for projects of all sizes, helping teams improve code quality, accelerate release cycles, and streamline their development workflows.\n\nVisit the following resources to learn more:", @@ -2240,26 +2214,10 @@ } ] }, - "TsXFx1wWikVBVoFUUDAMx": { - "title": "Drone", - "description": "Drone is an open-source continuous integration (CI) platform built on container technology. It automates building, testing, and deploying code using a simple, YAML-based pipeline configuration stored alongside the source code. Drone executes each step of the CI/CD process in isolated Docker containers, ensuring consistency and reproducibility. It supports multiple version control systems, offers parallel execution of pipeline steps, and provides plugins for integrating with various tools and services. Drone's lightweight, scalable architecture makes it suitable for projects of all sizes, from small teams to large enterprises. Its focus on simplicity and containerization aligns well with modern DevOps practices and microservices architectures.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Drone", - "url": "https://www.drone.io/", - "type": "article" - }, - { - "title": "Drone Documentation", - "url": "https://docs.drone.io/", - "type": "article" - }, - { - "title": "Drone CI Quickstart", - "url": "https://www.youtube.com/watch?v=Qf8EHRzAgHQ", - "type": "video" - } - ] + "octopus-deploy@TsXFx1wWikVBVoFUUDAMx.md": { + "title": "Octopus Deploy", + "description": "", + "links": [] }, "L000AbzF3oLcn4B1eUIYX": { "title": "TeamCity", @@ -3221,31 +3179,10 @@ } ] }, - "wNguM6-YEznduz3MgBCYo": { - "title": "Application Monitoring", - "description": "Application monitoring involves the continuous observation and analysis of software applications to ensure they perform optimally, identify issues, and provide insights into their operation. This process includes tracking metrics such as response times, error rates, resource utilization (CPU, memory, and disk), and transaction performance. Application monitoring tools collect and analyze data to detect anomalies, provide alerts for potential problems, and offer detailed insights into application behavior and performance. By monitoring applications, organizations can proactively address issues, optimize performance, and improve user experience, ultimately ensuring reliability and efficiency in their software systems.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Applying Basic vs. Advanced Monitoring Techniques", - "url": "https://thenewstack.io/applying-basic-vs-advanced-monitoring-techniques/", - "type": "article" - }, - { - "title": "Why Legacy Apps Need Your Monitoring Love, Too", - "url": "https://thenewstack.io/why-legacy-apps-need-your-monitoring-love-too/", - "type": "article" - }, - { - "title": "Explore top posts about Monitoring", - "url": "https://app.daily.dev/tags/monitoring?ref=roadmapsh", - "type": "article" - }, - { - "title": "Application Monitoring - 4 Golden Signals", - "url": "https://www.youtube.com/watch?v=PHcnmTdVPT0", - "type": "video" - } - ] + "observability@wNguM6-YEznduz3MgBCYo.md": { + "title": "Observability", + "description": "", + "links": [] }, "8rd7T5ahK2I_zh5co-IF-": { "title": "Jaeger", @@ -3361,5 +3298,25 @@ "type": "video" } ] + }, + "eso@lUUJAEBrGJvL8dRs2n1GD.md": { + "title": "ESO", + "description": "", + "links": [] + }, + "dynatrace@4aJVaimsuvGIPXMZ_WjaA.md": { + "title": "Dynatrace", + "description": "", + "links": [] + }, + "salt@Kumwd6XOlEMeDohDH0q9P.md": { + "title": "Salt", + "description": "", + "links": [] + }, + "openshift@3GryoQuI67JTHg9r3xUHO.md": { + "title": "OpenShift", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/docker.json b/public/roadmap-content/docker.json index b570db9cd4e3..1c5d887390aa 100644 --- a/public/roadmap-content/docker.json +++ b/public/roadmap-content/docker.json @@ -378,22 +378,6 @@ } ] }, - "HlTxLqKNFMhghtKF6AcWu": { - "title": "Interactive Test Environments", - "description": "Docker allows you to create isolated, disposable environments that can be deleted once you're done with testing. This makes it much easier to work with third party software, test different dependencies or versions, and quickly experiment without the risk of damaging your local setup.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "Launch a Dev Environment", - "url": "https://docs.docker.com/desktop/dev-environments/create-dev-env/", - "type": "article" - }, - { - "title": "Test Environments - Medium", - "url": "https://manishsaini74.medium.com/containerized-testing-orchestrating-test-environments-with-docker-5201bfadfdf2", - "type": "article" - } - ] - }, "YzpB7rgSR4ueQRLa0bRWa": { "title": "Command Line Utilities", "description": "Docker images can include command line utilities or standalone applications that we can run inside containers.\n\nVisit the following resources to learn more:", @@ -969,5 +953,10 @@ "type": "article" } ] + }, + "networking@9NuHwfytnUTpeVmnMpZZC.md": { + "title": "Networking", + "description": "", + "links": [] } } \ No newline at end of file diff --git a/public/roadmap-content/engineering-manager.json b/public/roadmap-content/engineering-manager.json index 26fcea2140c2..981b9000d0ec 100644 --- a/public/roadmap-content/engineering-manager.json +++ b/public/roadmap-content/engineering-manager.json @@ -468,29 +468,29 @@ "description": "An Engineering Manager's role in production issues management is crucial. They are responsible for quick decision making during system down-times or service disruptions. They deploy resources efficiently to resolve issues, sometimes guiding the team in real-time to troubleshoot and fix the problem.\n\nKey challenges include downtime minimization, maintaining system availability, and making trade-offs between quick fixes and long-term solutions. They address these challenges by implementing strong incident management policies and training the team for effective system recovery processes.\n\nSuccess in this aspect requires a mix of technical skills, effective communication, and problem-solving abilities. They also need a solid understanding of the deployed systems and infrastructure to ensure seamless functionality and service availability. It's crucial to learn from each outage to prevent or handle similar occurrences in the future.", "links": [] }, - "mIUx8zAHWyPWPGvxuTK4y": { - "title": "Contingency planning", - "description": "An Engineering Manager needs to ensure that their team is prepared for any unexpected situations or challenges - that's where contingency planning comes into play. It's the manager's responsibility to guide their team in developing robust plans that address potential risks and uncertainties. This includes identifying possible obstacles, evaluating their impact, and devising strategies to mitigate them.\n\nThe challenges this role faces are manifold, from predicting the unknown to dealing with a resistant team. To navigate these, cultivating an open and flexible team culture is crucial. By fostering a problem-solving mentality, the manager can encourage their team to see contingency planning as a tool, not a burden.\n\nTo successfully play this role, an Engineering Manager needs to have strong risk management and strategic thinking skills. They must be able to balance a long-term view with immediate, tactical decisions. They should also be comfortable leading difficult conversations about potential failures and mishaps.", + "burnout-prevention@mIUx8zAHWyPWPGvxuTK4y.md": { + "title": "Burnout prevention", + "description": "", "links": [] }, - "nnoVA8W70hrNDxN3XQCVL": { - "title": "Disaster recovery", - "description": "An Engineering Manager plays a critical part in disaster recovery. It is their job to ensure that, if any failure occurs, the team can quickly get systems up and running again. They devise and oversee the implementation of a sturdy disaster recovery plan. This often involves risk assessment, data backups, and establishing rapid recovery processes.\n\nChallenges they may face include dealing with data loss and service disruptions. To face these, an Engineering Manager often relies on a good strategy, clear communication, and effective coordination. They align the team and ensure everyone knows their role in the recovery process.\n\nIt requires strong leadership, risk management, technical knowledge, and problem-solving skills. Regular testing of the recovery plan is also essential to identify loopholes and ensure the effectiveness of the strategies in place.", + "critical-situation-leadership@nnoVA8W70hrNDxN3XQCVL.md": { + "title": "Critical situation leadership", + "description": "", "links": [] }, - "FwK-B7jRbBXVnuY9JxI1w": { - "title": "Business continuity", - "description": "An Engineering Manager plays a pivotal role in the domain of business continuity. This involves ensuring that the various aspects of technological and process frameworks are resilient to disruptions. The aim is to sustain core business operations during times of crisis.\n\nKey responsibilities include setting up robust risk management systems, executing incident-response plans, and ensuring data integrity during downtime. It's a challenge to maintain operational resilience without stinting ongoing projects, and managing it involves a delicate balance of resources.\n\nTo achieve this, Engineering Managers must possess excellent problem-solving skills and a clear understanding of business operation needs. Regular risk assessment and sharpening the team's skill set to adapt and respond to uncertainty quickly are essential strategies. Robust infrastructure, policy planning, and good leadership are underlying requirements to render effective business continuity.", + "emergency-staffing@FwK-B7jRbBXVnuY9JxI1w.md": { + "title": "Emergency staffing", + "description": "", "links": [] }, - "QFhhOgwz_bgZgOfKFg5XA": { - "title": "Security incident handling", - "description": "For an Engineering Manager, handling security incidents within a team involves keen attention to detail and quick actions. Their key responsibilities include coordinating with the security team to manage the issue and ensure minimal disruption to the project. They also facilitate communications, keeping all stakeholders informed about the situation and the steps being taken.\n\nChallenges faced by the Engineering Manager include managing team stress levels during security incidents and ensuring swift return to normal operations post-incident. By skillfully juggling these tasks, the manager can help secure the team's trust and keep the project on track.\n\nTo successfully handle security incidents, an Engineering Manager needs active decision-making skills, a solid understanding of security protocols, and strong team leadership capabilities. The ability to react calmly and decisively under pressure is also essential.", + "stress-management@QFhhOgwz_bgZgOfKFg5XA.md": { + "title": "Stress management", + "description": "", "links": [] }, - "tmY4Ktu6luFg5wKylJW76": { - "title": "Production issues management", - "description": "As an Engineering Manager, handling production issues is one of the vital responsibilities. This includes timeliness in identifying, troubleshooting, and resolving problems. They may be involved in the actual debugging, but most of their tasks involve coordinating the team and defining procedures for a swift response to any issues.\n\nAddressing these issues can be challenging, particularly if they disrupt essential services or products. The manager needs to communicate effectively with the team and stakeholders, manage expectations, and ensure minimal interruption of services.\n\nTo excel in production issues management, an Engineering Manager needs valuable skills. These include technical knowledge, critical thinking, decision-making, and strong communication skills. Also, experience with certain tools, like monitoring software, could be beneficial to quickly detect and resolve issues.", + "work-life-balance-during-crises@tmY4Ktu6luFg5wKylJW76.md": { + "title": "Work-life balance during crises", + "description": "", "links": [] }, "5MM1ccB1pmQcd3Uyjmbr7": { @@ -568,11 +568,6 @@ "description": "The role of an Engineering Manager extends to external collaboration as well. Here, they often serve the role of liaising with external teams, vendors, or partners, aligning goals and ensuring smooth communication flow. The key responsibilities include managing relationships, understanding the partner ecosystem, and negotiating win-win situations.\n\nEngineering Managers face challenges like cultural differences, communication hurdles, or time zone disparities. They address these by building reliability through regular updates, clear agendas, and understanding each other's work culture.\n\nTo succeed, Engineering Managers need good interpersonal skills, a keen eye for future opportunities, and the ability to adapt quickly. An understanding of business and sales, alongside engineering knowledge, can be advantageous too. This role needs balance - drive details when necessary and step back and delegate when appropriate.", "links": [] }, - "TQY4hjo56rDdlbzjs_-nl": { - "title": "Competitive Analysis", - "description": "An Engineering Manager uses competitive analysis to understand market trends and competitor strategies. This aids in decision-making and strategic planning. Their key responsibilities include identifying key competitors, analyzing their products, sales, and marketing strategies.\n\nChallenges may arise from having incomplete or inaccurate data. In these cases, Engineering Managers have to rely on their judgement and experience. Their analysis should be unbiased and as accurate as possible to influence the right design and development strategies.\n\nSuccessful competitive analysis requires strong analytical skills, keen attention to detail, and the ability to understand complex market dynamics. Managers must stay updated on market trend, technological advancements and be able to distinguish their company's unique selling proposition. This will allow them to plan steps to maintain competitiveness in the market.", - "links": [] - }, "QUxpEK8smXRBs2gMdDInB": { "title": "Legacy System Retirement", "description": "Every Engineering Manager knows the value and hurdles of legacy system retirement. They must plan and manage this complex task with a keen understanding of the system's purpose, its interdependencies, and potential risks of its retirement. Key responsibilities include assessing the impact on users, mitigating downtime, and ensuring business continuity.\n\nChallenges often arise from lack of documentation or knowledge about the legacy system. To overcome this, they could organize knowledge-sharing sessions with long-standing team members, assessing external help, or gradual transition methods.\n\nThe successful retirement of a legacy system requires a comprehensive approach, good interpersonal skills for team collaboration, and strong decision-making skills. An Engineering Manager has to balance the system’s business value against the cost and risk of maintaining it.", diff --git a/public/roadmap-content/frontend.json b/public/roadmap-content/frontend.json index 36b7ee497702..8315e639c40a 100644 --- a/public/roadmap-content/frontend.json +++ b/public/roadmap-content/frontend.json @@ -197,121 +197,6 @@ } ] }, - "PCirR2QiFYO89Fm-Ev3o1": { - "title": "Learn the basics", - "description": "HTML (HyperText Markup Language) is the backbone of webpages. It structures the content you see online. You use CSS to style this HTML structure and JavaScript to make it interactive. Think of HTML as the skeleton of a website.\n\nVisit the following resources to learn more:", - "links": [ - { - "title": "W3Schools: Learn HTML", - "url": "https://www.w3schools.com/html/html_intro.asp", - "type": "article" - }, - { - "title": "web.dev: Learn HTML", - "url": "https://web.dev/learn/html", - "type": "article" - }, - { - "title": "HTML Full Course - Build a Website Tutorial", - "url": "https://www.youtube.com/watch?v=kUMe1FH4CHE", - "type": "video" - } - ] - }, - "z8-556o-PaHXjlytrawaF": { - "title": "Writing Semantic HTML", - "description": "Semantic HTML uses markup to convey the meaning of web content, not just its appearance, by employing elements like `
`, `