<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Renee Noble</title>
    <description>The latest articles on DEV Community by Renee Noble (@reneenoble).</description>
    <link>https://dev.to/reneenoble</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1330299%2Ffc5d4c4e-270f-4fa0-a75c-c6b4e3bfd97c.png</url>
      <title>DEV Community: Renee Noble</title>
      <link>https://dev.to/reneenoble</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/reneenoble"/>
    <language>en</language>
    <item>
      <title>Get started with GitHub Copilot CLI: A free, hands-on course</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Thu, 05 Mar 2026 04:44:08 +0000</pubDate>
      <link>https://dev.to/azure/get-started-with-github-copilot-cli-a-free-hands-on-course-3beg</link>
      <guid>https://dev.to/azure/get-started-with-github-copilot-cli-a-free-hands-on-course-3beg</guid>
      <description>&lt;p&gt;GitHub Copilot has grown well beyond code completions in your editor. It now lives in your terminal, too. &lt;a href="https://docs.github.com/copilot/how-tos/copilot-cli" rel="noopener noreferrer"&gt;GitHub Copilot CLI&lt;/a&gt; lets you review code, generate tests, debug issues, and ask questions about your projects without ever leaving the command line.&lt;/p&gt;

&lt;p&gt;To help developers get up to speed, we put together a free, open source course: &lt;a href="https://github.com/github/copilot-cli-for-beginners" rel="noopener noreferrer"&gt;GitHub Copilot CLI for Beginners&lt;/a&gt;. It’s 8 chapters, hands-on from the start, and designed so you can go from installation to building real workflows in a few hours. &lt;strong&gt;Already have a GitHub account&lt;/strong&gt;? GitHub Copilot CLI works with &lt;a href="https://github.com/features/copilot/plans" rel="noopener noreferrer"&gt;GitHub Copilot Free&lt;/a&gt;, which is available to all personal GitHub accounts.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk through what the course covers and how to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  What GitHub Copilot CLI can do
&lt;/h2&gt;

&lt;p&gt;If you haven’t tried it yet, GitHub Copilot CLI is a conversational AI assistant that runs in your terminal. You point it at files using @ references, and it reads your code and responds with analysis, suggestions, or generated code.&lt;/p&gt;

&lt;p&gt;You can use it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review a file and get feedback on code quality&lt;/li&gt;
&lt;li&gt;Generate tests based on existing code&lt;/li&gt;
&lt;li&gt;Debug issues by pointing it at a file and asking what’s wrong&lt;/li&gt;
&lt;li&gt;Explain unfamiliar code or confusing logic&lt;/li&gt;
&lt;li&gt;Generate commit messages, refactor functions, and more&lt;/li&gt;
&lt;li&gt;Write new app features (front-end, APIs, database interactions, and more)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It remembers context within a conversation, so follow-up questions build on what came before.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the course covers
&lt;/h2&gt;

&lt;p&gt;The course is structured as 8 progressive chapters. Each one builds on the last, and you work with the same project throughout: a book collection management app. Instead of jumping between isolated snippets, you keep improving one codebase as you go.&lt;/p&gt;

&lt;p&gt;Here’s what using GitHub Copilot CLI looks like in practice. Say you want to review a Python file for potential issues. Start up Copilot CLI and ask what you’d like done:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ copilot
&amp;gt; Review @samples/book-app-project/books.py for potential improvements. Focus on error handling and code quality.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copilot reads the file, analyzes the code, and gives you specific feedback right in your terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68z8p0e37osyv69md339.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68z8p0e37osyv69md339.gif" alt="code review demo gif" width="760" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the chapters covered in the course:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Start&lt;/strong&gt; — Installation and authentication&lt;br&gt;
&lt;strong&gt;First Steps&lt;/strong&gt; — Learn the three interaction modes: interactive, plan, and one-shot (programmatic)&lt;br&gt;
&lt;strong&gt;Context and Conversations&lt;/strong&gt; — Using @ references to point Copilot at files and directories, plus session management with --continue and --resume&lt;br&gt;
&lt;strong&gt;Development Workflows&lt;/strong&gt; — Code review, refactoring, debugging, test generation, and Git integration&lt;br&gt;
&lt;strong&gt;Custom Agents&lt;/strong&gt; — Building specialized AI assistants with .agent.md files (for example, a Python reviewer that always checks for type hints)&lt;br&gt;
&lt;strong&gt;Skills&lt;/strong&gt; — Creating task-specific instructions that auto-trigger based on your prompt&lt;br&gt;
&lt;strong&gt;MCP Servers&lt;/strong&gt; — Connecting Copilot to external services like GitHub repos, file systems, and documentation APIs via the Model Context Protocol&lt;br&gt;
&lt;strong&gt;Putting It All Together&lt;/strong&gt; — Combining agents, skills, and MCP servers into complete development workflows&lt;br&gt;
learning path image&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F381r15kd6bohcuu878jj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F381r15kd6bohcuu878jj.png" alt="learning path image" width="800" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every command in the course can be copied and run directly. No AI or machine learning background is required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;The course is built for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developers using terminal workflows:&lt;/strong&gt; If you’re already running builds, checking git status, and SSHing into servers from the command line, Copilot CLI fits right into that flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams looking to standardise AI-assisted practices:&lt;/strong&gt; Custom agents and skills can be shared across a team through a project’s &lt;code&gt;.github/agents&lt;/code&gt; and &lt;code&gt;.github/skills&lt;/code&gt; directories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Students and early-career developers:&lt;/strong&gt; The course explains AI terminology as it comes up, and every chapter includes assignments with clear success criteria.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t need prior experience with AI tools. If you can run commands in a terminal, you learn and apply the concepts in this course.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the course teaches
&lt;/h2&gt;

&lt;p&gt;Each chapter follows a consistent pattern: a real-world analogy to ground the concept, then the core technical material, then hands-on exercises. For instance, the three interaction modes are compared to ordering food at a restaurant. Plan mode is more like mapping your route to the restaurant before you start driving. Interactive mode is a back-and-forth conversation with a waiter. And one-shot mode (programmatic mode) is like going through the drive-through.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsorjdhrhn758c638mps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsorjdhrhn758c638mps.png" alt="ordering food analogy image" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Later chapters use different comparisons: agents are like hiring specialists, skills work like attachments for a power drill, and MCP servers are compared to browser extensions. The goal is to provide you with a visual and mental model before the technical details land.&lt;/p&gt;

&lt;p&gt;The course also focuses on a question that’s harder than it looks: when should I use which tool? Knowing the difference between reaching for an agent, a skill, or an MCP server takes practice, and the final chapter walks through that decision-making in a realistic workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cfcllljwbgovlf9qfc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cfcllljwbgovlf9qfc6.png" alt="integration pattern image" width="749" height="881"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;The course is free and open source. You can clone the repo, or &lt;a href="https://codespaces.new/github/copilot-cli-for-beginners?hide_repo_select=true&amp;amp;ref=main&amp;amp;quickstart=true" rel="noopener noreferrer"&gt;open it in GitHub Codespaces&lt;/a&gt; for a fully configured environment. Jump right in, get Copilot CLI running, and see if it fits your workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/github/copilot-cli-for-beginners" rel="noopener noreferrer"&gt;GitHub Copilot CLI for Beginners&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a quick reference, see the &lt;a href="https://docs.github.com/copilot/reference/cli-command-reference" rel="noopener noreferrer"&gt;CLI command reference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Subscribe to &lt;a href="https://resources.github.com/newsletter/" rel="noopener noreferrer"&gt;GitHub Insider&lt;/a&gt; for more developer tips and guides.&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>cli</category>
      <category>vscode</category>
      <category>terminal</category>
    </item>
    <item>
      <title>What’s in a Name? Fuzzy Matching for Real-World Data</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Fri, 17 Oct 2025 00:47:36 +0000</pubDate>
      <link>https://dev.to/azure/whats-in-a-name-fuzzy-matching-for-real-world-data-5b5o</link>
      <guid>https://dev.to/azure/whats-in-a-name-fuzzy-matching-for-real-world-data-5b5o</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=-AQBJTt1qR4" rel="noopener noreferrer"&gt;🎥 Watch the full PyCon AU 2025 talk here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/-AQBJTt1qR4"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;When you work with human-entered data (registrations, surveys, customer forms, you name it!) you soon discover that &lt;strong&gt;people are very creative typists&lt;/strong&gt;. Names, schools, companies, and addresses come in with abbreviations, nicknames, missing words, and typos galore.&lt;/p&gt;

&lt;p&gt;That mess makes it hard to answer even simple questions like: &lt;em&gt;“Do these two records refer to the same person?”&lt;/em&gt; or &lt;em&gt;“How many participants came from this organisation?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At PyCon AU 2025, I explored how different fuzzy matching techniques, from traditional algorithms to generative AI, can help make sense of that chaos.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fuzzy Matching Challenge
&lt;/h2&gt;

&lt;p&gt;String comparison looks straightforward until you meet real-world data. “PLC Sydney” might really be “Presbyterian Ladies’ College Sydney.” “Certain Collage” is obviously a typo for “Certain College” (hopefully). And nicknames like Liz, Lizzy, and Elizabeth might all belong to the same person.&lt;/p&gt;

&lt;p&gt;That’s where &lt;strong&gt;fuzzy matching&lt;/strong&gt; comes in, using a variety of techniques we can rank how similar different non-identical words are to try and find the most likely match. But the question is, what fuzzy matching algorithms are best suited for matching what types of data? And can generative AI play a part in this matching game?&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparing Algorithmic Approaches
&lt;/h3&gt;

&lt;p&gt;I put six Python libraries to the test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TextDistance&lt;/strong&gt; and &lt;strong&gt;Python-Levenshtein&lt;/strong&gt; – classic edit-distance approaches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FuzzyWuzzy&lt;/strong&gt; and &lt;strong&gt;RapidFuzz&lt;/strong&gt; – hybrids that combine multiple distance metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nicknames&lt;/strong&gt; and &lt;strong&gt;PyNameMatcher&lt;/strong&gt; – specialised tools for given-name variations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To test them, I generated around 100 fake student names with nicknames, misspellings, and swapped orderings. Then I measured how accurately each library matched them to their correct counterparts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RapidFuzz&lt;/strong&gt; came out ahead, matching almost every record correctly, and doing it fast! The edit-distance methods struggled most with multicultural names where order or character sets varied, and the nickname libraries were strong but less consistent overall.&lt;/p&gt;

&lt;h3&gt;
  
  
  When Generative AI Shines
&lt;/h3&gt;

&lt;p&gt;Algorithmic fuzzy matching is fast and accurate, but it only looks at characters, not meaning. That’s where I turned to &lt;strong&gt;Azure OpenAI Service&lt;/strong&gt; for a different kind of help.&lt;/p&gt;

&lt;p&gt;By feeding in real school-name data, I found that straight out of the box &lt;strong&gt;GPT-5 was exceptionally good at recognising and correcting school names&lt;/strong&gt;, especially when they were abbreviated, misspelled, or included local school nicknames.&lt;/p&gt;

&lt;p&gt;For example, it could confidently map:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“PLC Syd” → “Presbyterian Ladies’ College Sydney”&lt;/li&gt;
&lt;li&gt;“Cerdon Collage” → “Cerdon College”&lt;/li&gt;
&lt;li&gt;“St Cats” → “St Catherine’s School, Waverley”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That level of contextual correction is almost impossible to achieve with pure algorithmic matching unless you maintain a custom dictionary of every possible variation. And who has time for that!&lt;/p&gt;

&lt;p&gt;The trade-off, of course, is performance. Generative models are slower and costlier to run at scale. But when used selectively, just for ambiguous or hard-to-match cases, they can dramatically improve accuracy. And of course this is something this specifically works well for names, like schools, that are well documented on the internet – something that doesn’t apply to the names of individual school students.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can we have the best of both worlds?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;hybrid AI + Algorithmic matching!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In practice, the best results came from a &lt;strong&gt;hybrid approach&lt;/strong&gt;, using traditional fuzzy-matching algorithms for most cases, and bringing in &lt;strong&gt;Azure OpenAI&lt;/strong&gt; only when the names got tricky. For example, RapidFuzz could quickly match “Lizzy Wong” to “Elizabeth Wong,” while the generative model was better at reasoning through ambiguous inputs like “Sally-Anne W.” or reversed multicultural name orders. By combining both, I could match almost every student record accurately, keeping the speed of algorithmic methods while adding the contextual understanding of generative AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;🎥 You can watch my full PyCon AU 2025 talk here:&lt;br&gt;
&lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=-AQBJTt1qR4" rel="noopener noreferrer"&gt;What’s in a Name: Fuzzy Matching Techniques for Proper Nouns&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📁 If you’d like to explore this further you can check out my &lt;strong&gt;&lt;a href="https://aka.ms/rn-whats-in-a-name" rel="noopener noreferrer"&gt;fuzzy matching repo&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Take a look at the libraries and tool I mentioned above, they’re easy to install and experiment with in Python. If you’re already using Azure OpenAI, it’s worth testing how a small retrieval-augmented setup might complement your existing matching logic.&lt;/p&gt;
&lt;h2&gt;
  
  
  Chat to us!
&lt;/h2&gt;

&lt;p&gt;💬 To chat more about AI solutions you can join the AI Foundry Discord, where advocates like me are chatting about the latest tools all the time. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://aka.ms/AI-Discord-rn-FM-blog" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Join the Azure AI Foundry Discord here&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Good luck on your fuzzy matching adventures!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>azure</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>I really love working with the AZD team! They are bringing out new features that are really inline with developer needs all the time, so take a look at this big feature milestone!</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Tue, 01 Jul 2025 04:21:53 +0000</pubDate>
      <link>https://dev.to/reneenoble/i-really-love-working-with-the-azd-team-they-are-bringing-out-new-features-that-are-really-inline-53pe</link>
      <guid>https://dev.to/reneenoble/i-really-love-working-with-the-azd-team-they-are-bringing-out-new-features-that-are-really-inline-53pe</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/kristenwomack" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1439006%2F87935964-f46a-4422-90c3-3ce80e5474b6.jpg" alt="kristenwomack"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/kristenwomack/azd-cli-extension-framework-4kh4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;azd CLI extension framework&lt;/h2&gt;
      &lt;h3&gt;Kristen Womack ・ Jun 30&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cli&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#azure&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>programming</category>
      <category>cli</category>
      <category>azure</category>
      <category>ai</category>
    </item>
    <item>
      <title>Build faster with this simple AZD template for FastAPI on Azure App Service</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Fri, 02 May 2025 07:54:39 +0000</pubDate>
      <link>https://dev.to/azure/build-faster-with-this-simple-azd-template-for-fastapi-on-azure-app-service-4flm</link>
      <guid>https://dev.to/azure/build-faster-with-this-simple-azd-template-for-fastapi-on-azure-app-service-4flm</guid>
      <description>&lt;p&gt;Whether you’re building your first web app or your fiftieth, you want it to be simple to deploy so you can spend your time on building your new idea and not on configuration options to get your service running in the cloud. And when you’re just getting started you don’t need huge scale, you probably want to deploy it on a free plan!&lt;/p&gt;

&lt;p&gt;I’ve made this &lt;a href="https://aka.ms/azd-fastapi-app-service" rel="noopener noreferrer"&gt;Simple FastAPI AZD template for Azure App Service&lt;/a&gt; to help you get to the fun part, and to cut out all the extra infrastructure that you don’t necessarily want or need. This FastAPI template for Azure App Service gives you all the infrastructure as code to deploy a basic “Hello World” FastAPI web app that you can spin up using &lt;a href="https://aka.ms/blog-azd-home" rel="noopener noreferrer"&gt;AZD (Azure Developer SDK)&lt;/a&gt; with just three commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to do it
&lt;/h2&gt;

&lt;p&gt;To get started, you just need to &lt;a href="https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd" rel="noopener noreferrer"&gt;install AZD&lt;/a&gt;, a command-line tool you can use right there in VS Code. Then you’re ready to grab the template and deploy. Run these commands and follow the prompts as you go. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Grab our new simple FastAPI template for Azure App Service:&lt;br&gt;
&lt;strong&gt;&lt;code&gt;azd init --template Azure-Samples/azd-simple-fastapi-appservice&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
It will ask you to give your environment a name. This will be used to name different resources that are deployed on Azure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log in to your Azure account:&lt;br&gt;
&lt;strong&gt;&lt;code&gt;azd auth login&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now for the magic! Well, not magic… in one command we can package up your code, provision the Azure resources, and deploy your web app:&lt;br&gt;
&lt;strong&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
You’ll get to choose the location where your web app deploys and the subscription you want to put it on.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;If you loved how easy that was&lt;/strong&gt;, you can check out more about AZD, how you can use it, and find more AZD learning resources on the &lt;a href="https://aka.ms/blog-azd-home" rel="noopener noreferrer"&gt;Azure Developer SDK home page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why choose FastAPI on Azure App Service
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FastAPI vs Other Python Frameworks
&lt;/h3&gt;

&lt;p&gt;FastAPI is a great choice if you need to build APIs quickly and efficiently. It’s designed to be fast, easy to use, and powerful. Here’s why you might choose FastAPI over other Python frameworks like Flask or Django:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed and Native Asynchronous Support&lt;/strong&gt;&lt;br&gt;
FastAPI is built for high performance as it is built on &lt;strong&gt;Starlette&lt;/strong&gt; (a lightweight ASGI framework), ideal for high-concurrency apps with many simultaneous users or pushing live updates, WebSocket connections, or where background data collection and processing are frequent.&lt;/p&gt;

&lt;p&gt;Leveraging Python’s async and await keywords allows FastAPI to serve up your web app much faster than frameworks like Flask when handling many requests at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pydantic for Type Hints, Data Validation, and Clear Error Messages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FastAPI uses &lt;strong&gt;Pydantic&lt;/strong&gt; to enforce type hints and automatically validate request data. If the input is invalid, FastAPI returns clear, structured error messages without extra code. This makes APIs more reliable, user-friendly, and easier to debug. The automated error detection based on the Pydantic models you have specified also cuts down on test writing time as well as generating interactive API documentation automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean and Extendable Code with Dependency Injection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FastAPI uses &lt;strong&gt;dependency injection&lt;/strong&gt; to promote clean, maintainable, and modular code. Dependency injection is a design pattern where components (like functions or classes) are provided with their dependencies (e.g., database connections, external services) rather than creating them inside the function itself. This results in code that is easier to &lt;strong&gt;test, extend, and maintain&lt;/strong&gt; – particularly when you consider the benefits of inheriting dependencies and the reduction of duplication of code this provides.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overall, if you’re looking for a framework that makes API development faster and smoother, FastAPI is a great choice!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Azure App Service?
&lt;/h2&gt;

&lt;p&gt;There are a lot of deployment strategies out there, but when you’re just getting started you don’t need a lot of the complex features and configurations. To keep it as simple as possible, I’ve built this template to use Azure App Service – which can take you a long way on your web app journey as your idea and scale grows.&lt;/p&gt;

&lt;p&gt;Here’s a couple of points as to why using Azure App Service is a good way to get started with a new project, whether it’s a project you’re using for learning, a prototype, or for your global role out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get started for free&lt;/strong&gt;&lt;br&gt;
As the template comes, it is set to a &lt;strong&gt;basic plan&lt;/strong&gt; (you can see the &lt;a href="https://azure.microsoft.com/en-au/pricing/details/app-service/windows/#pricing" rel="noopener noreferrer"&gt;pricing per month here&lt;/a&gt;), but if you want to get started for free, you can easily update the template before you run azd up to leverage the free plan or the discounted developer plan!&lt;/p&gt;

&lt;p&gt;To change the plan go to the template file infra/resources.bicep and update line 58 where the SKU is set to “B1” (“Stock-Keeping Units” is how we refer to the different plans that offer different amounts of RAM and storage). Change this to “F1” to deploy up to 10 App Service apps for free on the &lt;strong&gt;free plan&lt;/strong&gt; (or “D1”  for the discounted developer rate if you have more than 10 to deploy concurrently).  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale far and wide&lt;/strong&gt;&lt;br&gt;
When you’re just getting started, you’ll already get the benefit of Azure’s global reach by selecting from one of the &lt;strong&gt;many server locations&lt;/strong&gt; close to you, helping reduce lag for users in your region. Then, as your web app “grows up”, you’ll have a lot of options for how to scale to reach a growing and spreading user base.&lt;/p&gt;

&lt;p&gt;Once you have a couple of people trying to use your site at the same time it’s probably time to move on up to a &lt;strong&gt;Basic plan&lt;/strong&gt; (if you have changed the template to use the “F1” or “D1” plans), to give you a bit more RAM to serve your users quickly. Just change your SKU back to “B1” or look at the &lt;a href="https://azure.microsoft.com/en-au/pricing/details/app-service/windows/#pricing" rel="noopener noreferrer"&gt;different plan options&lt;/a&gt; if you think you might need something a bit beefier! Even just upgrading to the Basic plan will start to get you access to &lt;strong&gt;automatic scaling&lt;/strong&gt; features to help you scale globally by increasing the number of VM instances that run your app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to manage and deploy&lt;/strong&gt;&lt;br&gt;
If you are getting started with cloud, Azure App Service is a great place to start (and continue!). App Service allows you to manage your cloud-hosted web apps with less of a learning curve than you might experience with a container-based option and has &lt;strong&gt;clean-cut&lt;/strong&gt; ways to be able to interact with your logs.&lt;/p&gt;

&lt;p&gt;And, we’ve already discussed how easy it is to get this project up and running on the cloud with AZD, but Azure App Service also has built-in GitHub integrations and works with &lt;strong&gt;CI/CD pipelines&lt;/strong&gt; that you can configure in GitHub to customise your deployment flow as you continue to build out your solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;To wrap things up, I hope using my &lt;a href="https://aka.ms/azd-fastapi-app-service" rel="noopener noreferrer"&gt;Simple FastAPI + Azure App Service template&lt;/a&gt; sounds good to you! &lt;strong&gt;You can easily use it for free&lt;/strong&gt;, so why not see how much simpler it can make deploying a Python-backed web app to the cloud?&lt;/p&gt;

&lt;p&gt;I hope you enjoy building on it and have a great time with all the benefits of the speedy and modular FastAPI framework, along with the simplicity, scalability, and integration options that Azure App Service provides&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deploy web apps with help from GitHub Copilot for Azure!</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Mon, 11 Nov 2024 06:03:20 +0000</pubDate>
      <link>https://dev.to/azure/deploy-web-apps-with-help-from-github-copilot-for-azure-5ab2</link>
      <guid>https://dev.to/azure/deploy-web-apps-with-help-from-github-copilot-for-azure-5ab2</guid>
      <description>&lt;p&gt;I know that when I started building web apps, actually deploying my app to the web was the part that seemed the most out of reach. Speaking to a lot of other developers about their early experiences of web dev, I hear that story again and again. I even have many friends who are accomplished software engineers who don’t want anyone to know that they have never deployed a personal project to the web. &lt;br&gt;
 &lt;br&gt;
Once you’ve deployed something once, you’ll realise that it’s not so hard to get something up and running on the web, but the world of dev ops is growing and there is aways more to learn about how to manage your deployment. Whether you’re just getting started or expanding your skill set, there’s always room for a bit of help!&lt;br&gt;
 &lt;br&gt;
Over the last few months, I’ve been excited to play with the &lt;a href="https://aka.ms/vsc-azure-copilot" rel="noopener noreferrer"&gt;GitHub Copilot for Azure extension in VS Code&lt;/a&gt;, which is now in public preview! &lt;br&gt;
 &lt;br&gt;
Putting this extension through its paces, I tried to relive my first experiences of working with web apps now with GitHub Copilot for Azure on my team. After this experience, here are my top five prompt topics that I think are really great for new web app developers that I wish I had 10 years ago when I got started!&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  1. Skip the search engines and get relevant info right from your IDE.  
&lt;/h3&gt;

&lt;p&gt;For those who are new to deploying something  a web search of “how do I deploy a web app” seems pretty likely! Maybe you’ve heard about a few different deployment options, but how to actually get started with them is going to need a bit of research.&lt;/p&gt;

&lt;p&gt;But the wider internet is full of people with a huge range of set ups, deploying a wide range of projects with different requirements and complexities. It’s easy to get lost in a Stack Overflow thread thinking “is this relevant to me???”.&lt;/p&gt;

&lt;p&gt;Asking GitHub Copilot for Azure “Can you help me put my website on the internet” told me about the simplest service to use, provided me a link to the Azure Developer CLI documentation, and gave me suggested questions for my next steps!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqxnvkr8p67v40qz1o5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqxnvkr8p67v40qz1o5b.png" alt="Screenshot of VS Code and GitHub Copilot responding to the prompt " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reflecting on my first experiences, knowing that you are following the right path and knowing what are useful things to think about and ask were the things I was the most uncertain about, so this was a great first step.    &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Discover services and templates you wouldn’t otherwise know about! 
&lt;/h3&gt;

&lt;p&gt;A simple statement like “I want to make a web app with Python”, could help you discover a bunch of resources that already exist! This response told me about AZD (Azure Developer CLI) as well as a template that exists for a Python Django web app that deploys on Azure App Service.   ￼  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febx53rx9p1rsuz4e1kgp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febx53rx9p1rsuz4e1kgp.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you haven’t heard of AZD before, this could be a game changer! AZD help you deploy from the command line in only a few keystrokes, and it has a best buddy, &lt;a href="https://aka.ms/awesome-azd-vsc-azure-copilot-blog" rel="noopener noreferrer"&gt;Awesome AZD&lt;/a&gt;, where a bunch of AZD templates live! Awesome AZD is full of different templates for common combinations of tech, for example here Python, Django, and Azure App Service. When it comes to dev ops there is a lot to know, but there’s no reason that you need to reinvent the wheel, especially if you are getting started and building a basic app. Awesome AZD apps have the dev ops covered for you by including infrastructure as code files (like Bicep files), that will configure your resources for you when you deploy your app using AZD.   &lt;/p&gt;

&lt;p&gt;Once you see the different template options available on &lt;a href="https://aka.ms/awesome-azd-vsc-azure-copilot-blog" rel="noopener noreferrer"&gt;Awesome AZD&lt;/a&gt;, you might have questions on what is the best service to deploy your web app with, which you can once again ask to &lt;a href="https://aka.ms/vsc-azure-copilot" rel="noopener noreferrer"&gt;GitHub Copilot for Azure&lt;/a&gt; to get well informed and concise answers, as well as suggestions for questions on other topics you might want to consider, like cost management.  ￼    &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5lqzqczuhu7h2ibh3u2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5lqzqczuhu7h2ibh3u2c.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="800" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Get the step-by-step instruction you need and skip the copy and paste! 
&lt;/h3&gt;

&lt;p&gt;I am really loving not leaving VS Code as I go through the process of deploying something using the command line. Not only does the GitHub Copilot for Azure give you all the steps you need to deploy a web app (based on the actual documentation), all without having to leave your IDE, it also means you can skip the copy-paste routine that is normally associated with using command line prompts for the first time (at least for me!).&lt;/p&gt;

&lt;p&gt;It gives you the necessary steps in a quickly easy to read format, but it also gives you the “Insert in Terminal” button (and keyboard shortcut) to make it easier, faster, and just less fiddly!&lt;/p&gt;

&lt;p&gt;What is really great is it also crafts its answers based on the knowledge of your code base. If you have a file open it will automatically include that context when it creates a response for you. For projects started from AZD templates it will be able to give you all the quick and easy steps for initialising your project with AD, logging into to Azure from the terminal, and then deploying your web app right there in the command line.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9bwrkj4qqrmq94pt1iy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9bwrkj4qqrmq94pt1iy.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This has to be the best thing by far for beginner deployers. With a few clicks of “Insert into Terminal” you can get your template up and running on the web. Then you have all the tools you need to build on your template and to continue to deploy new versions.   &lt;/p&gt;

&lt;h3&gt;
  
  
  4. Interrogate your own Azure account in natural language to get IDs, app names, and more   
&lt;/h3&gt;

&lt;p&gt;Sometimes you just want a bit of information about a resource you have deployed, like what region it is in. Or maybe you want a list of all the resources you have on a particular service, or subscription.&lt;/p&gt;

&lt;p&gt;You could get all that info by trawling through the Azure portal manually or jumping into the Azure Resource Graph and crafting a query. But I’d personally rather just have the answer! &lt;/p&gt;

&lt;p&gt;It's super-fast to get questions like that answered now without leaving VS Code, with quick natural language questions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgaphybnfven6m9ocjl5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgaphybnfven6m9ocjl5.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="780" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have the name of a resource it’s easy to ask even more questions about it. Like getting the region it’s deployed in, or the date the resource was created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks73uqyy59fpixdpykio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks73uqyy59fpixdpykio.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="657" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think this is the biggest time saver of all the prompts. The questions are so simple, but finding what you need in the Azure portal might take you a while, especially if you are new to it!  &lt;/p&gt;

&lt;h3&gt;
  
  
  5. Get tips on how to use the Azure portal!  
&lt;/h3&gt;

&lt;p&gt;Sometimes GitHub Copilot for Azure isn’t the right tool for the question you have. But you’re not all alone now!   If you are new to the Azure portal, you might not know where everything is (I know I still find new things all the time!). When GitHub Copilot for Azure can’t give you the answer directly inside VS Code, it will give you instructions on how to get to the location in the Azure portal that will help you get your task done, and allow you to engage with a more rich Azure experience in the portal for seeing visualisations, building more sophisticated queries in for Azure Resource Graph, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F48wl213dtbebk122783u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F48wl213dtbebk122783u.png" alt="Screenshot of GitHub Copilot responding to the prompt " width="649" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Azure portal is really powerful once you know how to use it, so having a guide to where you need to look and what options you need to select is a huge help in getting your configuration set up and interacting with the full breadth of Azure functionality. &lt;/p&gt;

&lt;h3&gt;
  
  
  Give it a try!
&lt;/h3&gt;

&lt;p&gt;These are just a few of the things I have tried with the &lt;a href="https://aka.ms/vsc-azure-copilot" rel="noopener noreferrer"&gt;GitHub Copilot for Azure extension in VS Code&lt;/a&gt;, and are some of the greatest things I’ve seen for new web developers hoping to deploy their first few web apps (and also just for anyone who is deploying things on Azure!). I hope you give these and many more prompts a try! I’ve had a lot of fun seeing what &lt;a href="https://aka.ms/vsc-azure-copilot" rel="noopener noreferrer"&gt;GitHub Copilot for Azure extension in VS Code&lt;/a&gt; can do as well as learning myself the best way to ask questions to get some spot-on answers!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>azure</category>
      <category>githubcopilot</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Create and deploy a web app with Python and Azure – A video tutorial!</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Wed, 12 Jun 2024 07:06:08 +0000</pubDate>
      <link>https://dev.to/reneenoble/create-and-deploy-a-web-app-with-python-and-azure-a-video-tutorial-3mjj</link>
      <guid>https://dev.to/reneenoble/create-and-deploy-a-web-app-with-python-and-azure-a-video-tutorial-3mjj</guid>
      <description>&lt;p&gt;Have you ever wanted to create your own website or web service, but felt overwhelmed about how to get started with web development? Or have you already built a web app with Python, but wondered how you can deploy it online? If so, you might be interested in watching this video by and Pamela Fox and me, Renee Noble! We're two Python Cloud Advocates at Microsoft with a passion for web development and education!&lt;/p&gt;

&lt;p&gt;We’ll show you how to create a web app with Python Flask (or it’s async-sibling Quart) and show you how you can deploy you can take your web app live by deploying it on Azure. This is the first episode in a &lt;a href="https://developer.microsoft.com/en-us/reactor/series/S-1310/?wt.mc_id=twitter_S-1310_webpage_reactor"&gt;live stream series&lt;/a&gt; (that you can also &lt;a href="https://www.youtube.com/playlist?list=PLmsFUfdnGr3yjFln0fJF5LP58Q0onAjpF"&gt;catch on demand&lt;/a&gt;!) by Pamela and friends covering different web dev frameworks and practices! (And you can &lt;a href="https://aka.ms/web-apps-series-spanish"&gt;catch it in Spanish&lt;/a&gt; too!)&lt;br&gt;
 &lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/V_69Q0ZiPAI?start=47"&gt;
&lt;/iframe&gt;
&lt;br&gt;
 &lt;br&gt;
In this video, you will learn how the web works and why you (likely) need a web server to serve up your web app. You will also discover how a backend web framework, like Flask, helps you develop your web server quickly and easily and how it lets you use templates to build dynamic sites - whether it’s your first site or a complex full-scale service.&lt;br&gt;
 &lt;br&gt;
Want to improve your web server throughput? Find out how you can port your app to Quart, the asynchronous version of Flask. And of course, you’ll see how you can deploy your web apps to Azure App Service in minutes and learn what other deployment options you might be interested in seeking out depending on your project.&lt;br&gt;
 &lt;br&gt;
The video is perfect for beginners who have some familiarity with Python, but no prior experience with web development or deployment. It is also suitable for intermediate or advanced developers who want to refresh their skills or learn new tricks. Take a look at the video to learn some concepts and follow along with our coding and deployment demos! You can grab the &lt;a href="http://aka.ms/flask-appservice"&gt;demo repo here&lt;/a&gt; and &lt;a href="https://aka.ms/python-web-apps-101"&gt;check out the slides too&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>webdev</category>
      <category>azure</category>
      <category>flask</category>
    </item>
    <item>
      <title>Learn to build AI apps with Azure Cosmos DB!</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Wed, 01 May 2024 06:51:16 +0000</pubDate>
      <link>https://dev.to/reneenoble/learn-to-build-ai-apps-with-azure-cosmos-db-1lp1</link>
      <guid>https://dev.to/reneenoble/learn-to-build-ai-apps-with-azure-cosmos-db-1lp1</guid>
      <description>&lt;h2&gt;
  
  
  Microsoft Developers AI Learning Hackathon
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg148ro5mhsf79zdpk33v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg148ro5mhsf79zdpk33v.png" alt="Microsoft Developers AI Learning Hackathon event banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Calling all developers! Want to learn how to build AI apps? Want to compete for $10K in prizes? Look no further! Join us for the Microsoft Developers AI Learning Hackathon! Let's delve into what this hackathon has to offer: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the Microsoft Developers AI Learning Hackathon?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Microsoft Developers AI Learning Hackathon is an exciting global online event created to educate developers of all skill levels and backgrounds. From April 15th to June 18th, this hackathon welcomes participants to learn fundamental AI skills, develop their own AI copilot using Azure Cosmos DB for MongoDB, and compete for prizes. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;&lt;a href="https://aka.ms/azurecosmosdbhackathon" rel="noopener noreferrer"&gt;Sign Up Now&lt;/a&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pyur0mnf9a9kkwj1oda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pyur0mnf9a9kkwj1oda.png" alt="How to participate: sign up, complete the Cloud Skills Challenge, get hacking and submit your hack to Devpost. Finally as a bonus integrate AI into your project!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should I participate?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dive into foundational database technologies, the backbone of innovations like OpenAI’s ChatGPT. Put Azure Cosmos DB for MongoDB to work in real-world AI situations and compete for prizes totalling up to $10,000! Plus, participants will snag an exclusive badge to show off their newly acquired AI skills. Don't let this opportunity slip by – seize the chance to learn, create, and kickstart your AI learning journey on Azure! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvl84akyr7iqphyuq4ps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvl84akyr7iqphyuq4ps.png" alt="Microsoft Developers AI Learning Hackathon. Learn to build AI apps with Azure Cosmos DB and compete for $10000 in prizes."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About Azure Cosmos DB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Azure Cosmos DB is a fully managed and serverless distributed database for modern app development, with SLA-backed speed and availability, automatic and instant scalability, and support for open-source PostgreSQL, MongoDB, and Apache Cassandra. &lt;a href="https://cosmos.azure.com/try/" rel="noopener noreferrer"&gt;Try Azure Cosmos DB for free here&lt;/a&gt;. To stay in the loop on Azure Cosmos DB updates, follow us on &lt;a href="https://twitter.com/AzureCosmosDB" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://aka.ms/AzureCosmosDBYouTube" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;, and &lt;a href="https://www.linkedin.com/company/azure-cosmos-db/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Data Science &amp; DevTools: GitHub Copilot</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Wed, 20 Mar 2024 05:01:47 +0000</pubDate>
      <link>https://dev.to/azure/data-science-devtools-github-copilot-11be</link>
      <guid>https://dev.to/azure/data-science-devtools-github-copilot-11be</guid>
      <description>&lt;p&gt;Welcome to our third post of &lt;strong&gt;Developer Tools Week&lt;/strong&gt; as we continue our learning journey into Data Science! Today, let's talk about the GitHub Copilot extension and how we can use it for &lt;em&gt;focused learning&lt;/em&gt; inline, or in chat mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We'll Learn
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is GitHub Copilot?&lt;/li&gt;
&lt;li&gt;What can GitHub Copilot do?&lt;/li&gt;
&lt;li&gt;GitHub Copilot For Data Science&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignment&lt;/strong&gt;: Visualize Data With GitHub Copilot&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Explore the &lt;a href="https://bit.ly/2024-datasci-collection" rel="noopener noreferrer"&gt;2024: Data Science Day Collection&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bookmark and revisit these for more information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bit.ly/2024-datasci-collection" rel="noopener noreferrer"&gt;Collection 1️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Data Science Tools &amp;amp; Techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/rai-hub/collection" rel="noopener noreferrer"&gt;Collection 2️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Responsible AI Principles &amp;amp; Tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/ai-studio/collection" rel="noopener noreferrer"&gt;Collection 3️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build Generative AI Apps End-to-End with Azure AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;You've created a consistent and reproducible environment with GitHub Codespaces. You've got that instrumented with Jupyter Notebooks for interactive coding and shareable insights. And you've setup a Visual Studio Code profile with Data Science extensions and settings for a more productive developer experience. You've even walked through the basic Visual Studio Code data science tutorial. &lt;/p&gt;

&lt;p&gt;What can you do next to &lt;em&gt;enhance your developer experience and improve your productivity?&lt;/em&gt;. How about a tool that helps you &lt;strong&gt;stay focused and on-task&lt;/strong&gt; while providing AI-assisted &lt;strong&gt;code completion and content suggestion&lt;/strong&gt; capabilities relevant to that task context? Let's talk about GitHub Copilot!&lt;/p&gt;




&lt;h2&gt;
  
  
  1 | What is GitHub Copilot?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.github.com/copilot/copilot-individual/about-github-copilot-individual" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt; is an AI coding assistant that can improve your productivity with &lt;strong&gt;proactive suggestions&lt;/strong&gt; (via auto-completion) and &lt;strong&gt;reactive responses&lt;/strong&gt; (via interactive chat). It is installed as a Visual Studio Code extension, bringing &lt;a href="https://learn.microsoft.com/en-us/visualstudio/ide/ai-assisted-development-visual-studio" rel="noopener noreferrer"&gt;AI-assisted development&lt;/a&gt; capabilities to your editor including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code generation. It can &lt;em&gt;author&lt;/em&gt; code, tests, comments, and documentation to suit your request.&lt;/li&gt;
&lt;li&gt;Auto completion. It can &lt;em&gt;predict&lt;/em&gt; what your code needs next, based on current context.&lt;/li&gt;
&lt;li&gt;Code refactoring. It can help you &lt;em&gt;simplify&lt;/em&gt; code or fix issues with context-aware suggestions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub Copilot uses large language models (LLM) that are trained on large datasets of publicly available code on GitHub, and optimized for code-generation tasks. You can use the capability in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Passive Auto-Completion&lt;/strong&gt;. As you write code or content, the AI predicts valid suggestions in real-time inline, in your editor. Simply accept valid suggestions, and customize them further if needed. For instance, the image shows how the AI suggests the next import in your Jupyter Notebook code cell - simply &lt;em&gt;tab&lt;/em&gt; to accept the suggestion or &lt;em&gt;esc&lt;/em&gt; to ignore it.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-suggest-numpy.IFn_mLC7_j8btg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-suggest-numpy.IFn_mLC7_j8btg.webp" alt="Copilot Suggestion"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactive User Chat&lt;/strong&gt;. Open a chat window (sidebar) or dialog (inline) to start an interactive question-answer session. You can accept/discard responses (inline) or copy/paste them from window. For example - I can now ask for more details about the suggested import in a chat window. Note how it uses the file as a context reference.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-chat-numpy.DNqRX2D__1cUckW.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-chat-numpy.DNqRX2D__1cUckW.webp" alt="Copilot Completion"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of GitHub Copilot as an &lt;em&gt;assistive&lt;/em&gt; technology rather than an &lt;em&gt;automation&lt;/em&gt; tool in your workflow. Since the technology uses an LLM, it may have inaccurate or outdated information - so make sure you validate responses before you accept them. Using this technology requires &lt;a href="https://docs.github.com/en/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot" rel="noopener noreferrer"&gt;an active subscription&lt;/a&gt; but there is a &lt;a href="https://github.com/settings/copilot" rel="noopener noreferrer"&gt;30-day free trial&lt;/a&gt; to help you evaluate the capability for your own needs. The  &lt;a href="https://code.visualstudio.com/docs/editor/profiles#_data-science-profile-template" rel="noopener noreferrer"&gt;Data Science Profile Template&lt;/a&gt; for Visual Studio Code adds this extension to your profile by default if used.&lt;/p&gt;




&lt;h2&gt;
  
  
  2 | What can GitHub Copilot do?
&lt;/h2&gt;

&lt;p&gt;As we saw earlier, the AI can provide proactive suggestions (auto-completion) or reactive responses (user chat) using your current context (file or workspace) to ensure that responses are relevant to current tasks. In addition to these capabilities, the GitHub Copilot extension comes with built-in &lt;em&gt;slash commands&lt;/em&gt; that are optimized for common tasks. Simply open the inline chat dialog (editor) or the dedicated chat window (side) and type &lt;code&gt;/&lt;/code&gt; to see the available commands as shown:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chat Commands&lt;/th&gt;
&lt;th&gt;Inline Commands&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fchat_commands.svVhqVjs_ZVsw8Q.webp" alt="Chat Commands"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Finline_commands.snylViLS_D5ysg.webp" alt="Inline Commands"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The table below provides a short summary of what the commands do. Note that commands that can impact the currently-open file (e.g., add or modify code) can be used in both inline (dialog) and chat (window) modes. Other commands that are more general work only in the chat (window) pane.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;/doc&lt;/td&gt;
&lt;td&gt;Add comments for code using right syntax&lt;/td&gt;
&lt;td&gt;Inline and Chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/explain&lt;/td&gt;
&lt;td&gt;Get code explanations in natural language&lt;/td&gt;
&lt;td&gt;Inline and Chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/fix&lt;/td&gt;
&lt;td&gt;Fix problems in the specified code&lt;/td&gt;
&lt;td&gt;Inline and Chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/tests&lt;/td&gt;
&lt;td&gt;Create unit tests for the selected code&lt;/td&gt;
&lt;td&gt;Inline and Chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/newNotebook&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Chat only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  3 | GitHub Copilot For Data Science
&lt;/h2&gt;

&lt;p&gt;So how can you use GitHub Copilot to enhance your Python Data Analysis and Visualization &lt;strong&gt;learning journey&lt;/strong&gt;? Let's check out some simple examples using the &lt;a href="https://aka.ms/workshops/python-data-analysis" rel="noopener noreferrer"&gt;code repo&lt;/a&gt; for this workshop.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Use &lt;code&gt;/doc&lt;/code&gt; to add comments
&lt;/h3&gt;

&lt;p&gt;In this exercise, open the &lt;code&gt;3-copilot/02-cricketNotebook.ipynb&lt;/code&gt; notebook in your Visual Studio Code editor and let's explore using the &lt;code&gt;/doc&lt;/code&gt; command to add comments to the first code cell. Not only does this encourage good documentation practices, it also helps you gain insight into what the code does if you are not the author (e.g., was auto-generated or written by someone else)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Inline Example&lt;/th&gt;
&lt;th&gt;Chat Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-doc-inline.QE2qvzb6_Z1O4mYH.webp" alt="Inline"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-doc-chat.q3sNToPj_1ksCkD.webp" alt="Chat"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Note how the inline version provides a response that is formatted for inclusion into the code cell (with Accept/Discard) options) while the chat version provides more of an explanation of that code that could be used in a relevant user guide or tutorial. &lt;strong&gt;Hint:&lt;/strong&gt; Try using the &lt;code&gt;/explain&lt;/code&gt; command in chat mode instead to see how it compares to the response above.&lt;/p&gt;

&lt;p&gt;Another useful feature in chat mode is the &lt;em&gt;follow-up question&lt;/em&gt; suggested (at the bottom, in blue). These suggested prompts are a great way to &lt;strong&gt;build our intuition&lt;/strong&gt; by following suggested questions based on the previous query, but still relevant to the context of our current task. Contrast this with "googling" for answers or "searching Stack Overflow" where you need to context-switch (to use a new site) and may end up in rabbit holes that keep you distracted and away from your original task.&lt;/p&gt;




&lt;h3&gt;
  
  
  3.2 Use &lt;code&gt;/tests&lt;/code&gt; to write a unit test for the selected code
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Let's try this out to see what happens. Select the same code cell above, then try using the &lt;code&gt;/tests&lt;/code&gt; command inline. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-inline.8sKAVqG2_dq1o1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-inline.8sKAVqG2_dq1o1.webp" alt="Chat"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It gives you the option to "View In Chat" so let's take that route to see what tests are suggested. We see two basic tests (check for existence of valid and non-existent files) plus some suggestions (check for empty files or poorly-formatted ones).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-chat.YBT0X2fe_1dgrjq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-chat.YBT0X2fe_1dgrjq.webp" alt="Chat"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You will get a prompt to "Create" tests which will try to create a new tests notebook, with some issues. Instead, try copying the test code over into a new Python cell and run it, to verify it works. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-run.RYofHwT2_1UoINv.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-tests-run.RYofHwT2_1UoINv.webp" alt="Chat"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are more complex tests to write - but this showcases the streamlined developer experience for common tasks in VS Code.&lt;/p&gt;




&lt;h3&gt;
  
  
  3.3 Use &lt;code&gt;/newNotebook&lt;/code&gt; to create notebooks
&lt;/h3&gt;

&lt;p&gt;You can create a new Jupyter notebook &lt;em&gt;with pre-written code and documentation&lt;/em&gt; for a stated goal. Let's try this out by asking GitHub Copilot to get us started with a notebook for visualizing the cricket data in the file we looked at before. This will create it as an untitled notebook with the outline specified in that response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-create-notebook.JC9Snmo4_Um0Qd.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-create-notebook.JC9Snmo4_Um0Qd.webp" alt="Create "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Save that to a file like &lt;code&gt;01-newNotebook.ipynb&lt;/code&gt; and try running it with no modifications. Note how there are errors because of the filename mismatch. (Note: I deleted sections of the saved file for simplicity - so the outline is truncated).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-run-notebook.YErvnJEE_Z1w6KQ6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-run-notebook.YErvnJEE_Z1w6KQ6.webp" alt="Create "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can stay in the flow by asking the AI to fix the issue itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-fix-notebook.Oq3lawmE_1hysYo.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-fix-notebook.Oq3lawmE_1hysYo.webp" alt="Fix "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then run it to see the fix resolved, and output generated as required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-run-fixes.TWsfc5wP_Z1PV98k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fcopilot-run-fixes.TWsfc5wP_Z1PV98k.webp" alt="Run "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now try asking the AI to write new code or content sections for you to explore specific visualizations or seaborn syntax and capabilities. Check out the &lt;code&gt;01-seaborn-datawrangler-ipl.ipynb&lt;/code&gt; file as an example of what is possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  4 | Exercise: Try it yourself!
&lt;/h2&gt;

&lt;p&gt;In the above exercises, we created a notebook using a sample data file, and walked through steps to get us to a basic data analysis and visualization result. Try replicating this with a dataset of your own (e.g., try the TED Talks dataset found under the &lt;code&gt;1-data/kaggle/&lt;/code&gt; folder).&lt;/p&gt;

&lt;p&gt;Want to learn where you can find more open datasets to explore? Watch out for the next post in this series, for some useful resources.&lt;/p&gt;




&lt;p&gt;Bookmark and revisit these for more information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bit.ly/2024-datasci-collection" rel="noopener noreferrer"&gt;Collection 1️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Data Science Tools &amp;amp; Techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/rai-hub/collection" rel="noopener noreferrer"&gt;Collection 2️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Responsible AI Principles &amp;amp; Tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/ai-studio/collection" rel="noopener noreferrer"&gt;Collection 3️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build Generative AI Apps End-to-End with Azure AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>developers</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Data Science &amp; DevTools: Visual Studio Code</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Sun, 17 Mar 2024 04:24:25 +0000</pubDate>
      <link>https://dev.to/azure/data-science-devtools-visual-studio-code-jbg</link>
      <guid>https://dev.to/azure/data-science-devtools-visual-studio-code-jbg</guid>
      <description>&lt;p&gt;Welcome to the second post of &lt;strong&gt;Developer Tools Week&lt;/strong&gt; as we continue our learning journey into Data Science! Today, let's talk about how we can get more productive by using Visual Studio Code as our editor, and creating a &lt;em&gt;Data Science Profile&lt;/em&gt; for consistency and collaboration across projects and users.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We'll Learn
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Why use Visual Studio Code?&lt;/li&gt;
&lt;li&gt;What is a VS Code Profile?&lt;/li&gt;
&lt;li&gt;How do I create a Data Science Profile?&lt;/li&gt;
&lt;li&gt;What is Data Wrangler?&lt;/li&gt;
&lt;li&gt;How can I use Data Wrangler for Data Analysis?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignment&lt;/strong&gt;: Complete the &lt;a href="https://code.visualstudio.com/docs/datascience/data-science-tutorial" rel="noopener noreferrer"&gt;Data Science in VS Code Tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Explore the &lt;a href="https://bit.ly/2024-datasci-collection" rel="noopener noreferrer"&gt;2024: Data Science Day Collection&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bookmark and revisit these for more information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bit.ly/2024-datasci-collection" rel="noopener noreferrer"&gt;Collection 1️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Data Science Tools &amp;amp; Techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/rai-hub/collection" rel="noopener noreferrer"&gt;Collection 2️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Responsible AI Principles &amp;amp; Tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/ai-studio/collection" rel="noopener noreferrer"&gt;Collection 3️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build Generative AI Apps End-to-End with Azure AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;In the last post we talked about &lt;a href="https://dev.to/azure/data-science-devtools-github-codespaces-2fn"&gt;GitHub Codespaces&lt;/a&gt; and how it helps create a reproducible development environment with minimal setup effort on your part. Today, we'll look at why &lt;a href="https://code.visualstudio.com/docs" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; is the perfect &lt;em&gt;IDE&lt;/em&gt; (editor) for your data science projects in this environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Why Visual Studio Code?
&lt;/h2&gt;

&lt;p&gt;We already saw how the dev container approach involved a &lt;a href="https://code.visualstudio.com/docs/devcontainers/containers" rel="noopener noreferrer"&gt;Visual Studio Code client&lt;/a&gt; (in browser or on local device) connecting to a pre-built Docker container (hosted in GitHub Codespaces or Docker Desktop) to give us a familiar and seamless developer experience. But there are three more reasons why it's ideal for Data Science projects:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/docs/datascience/jupyter-notebooks" rel="noopener noreferrer"&gt;Jupyter Notebooks&lt;/a&gt; are supported natively in VS Code, making it easy to run and debug code in notebooks in a familiar environment.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/docs/editor/profiles" rel="noopener noreferrer"&gt;VS Code Profiles&lt;/a&gt; let you create a reusable profile (defining settings, extensions and customizations) that can be shared across projects and users.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/docs/datascience/data-wrangler" rel="noopener noreferrer"&gt;Data Wrangler&lt;/a&gt; is a code-centric data viewing and cleaning tool with a rich UI to view, clean &amp;amp; analyze data, and automatically generate Pandas code to perform the same operations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's explore these capabilities briefly in the next couple of sections, then revisit the Visual Studio Code tutorial for data science &lt;a href="https://dev.to/azure/data-science-devtools-github-codespaces-2fn"&gt;using the Jupyter-Codespaces environment&lt;/a&gt; we set up in our workshop repository in the previous post.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Data Science Profile
&lt;/h2&gt;

&lt;p&gt;If you are a frequent user of Visual Studio Code (e.g., content creation, programming in other languages, working with GitHub Codespaces) then you likely have &lt;a href="https://code.visualstudio.com/docs/editor/profiles#_data-science-profile-template" rel="noopener noreferrer"&gt;Profiles&lt;/a&gt; setup for distinct contexts, to make you productive. By default, a profile lets you specify the settings, extensions and other customizations you want to use &lt;em&gt;for a given context&lt;/em&gt; in a manner that is &lt;strong&gt;reusable and shareable&lt;/strong&gt; across users and projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Feditor%2Fprofiles%2Fcreate-profile.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Feditor%2Fprofiles%2Fcreate-profile.png" alt="Switch a Profile"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can create a profile from the Command Palette (as shown above) or by clicking the gear icon in your sidebar and selecting the &lt;code&gt;Profiles (Default)&lt;/code&gt; menu option. Once created, you can easily switch between profiles with a single click, making it easier to keep &lt;em&gt;distinct yet customized&lt;/em&gt; editing preferences and dependencies for each project or domain you work in. You can also &lt;em&gt;export&lt;/em&gt; profiles to either a Gist (online) or a file (local device) that others can then &lt;em&gt;import&lt;/em&gt; to replicate your settings. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Feditor%2Fprofiles%2Fcreate-profile-dialog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Feditor%2Fprofiles%2Fcreate-profile-dialog.png" alt="Create a Profile"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual Studio Code comes with &lt;a href="https://code.visualstudio.com/docs/editor/profiles#_profile-templates" rel="noopener noreferrer"&gt;&lt;em&gt;curated profile templates&lt;/em&gt;&lt;/a&gt; that are pre-configured for popular extensions and capabilities, that you can use as the basis for creating your own. For example, the &lt;a href="https://code.visualstudio.com/docs/editor/profiles#_data-science-profile-template" rel="noopener noreferrer"&gt;&lt;code&gt;Data Science&lt;/code&gt; profile template&lt;/a&gt; has built-in support for Dev Containers, Jupyter, Python, GitHub Copilot, Data Wrangler etc, - giving us the solid foundation required for use in our Jupyter-Codespaces environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Data Wrangler Extension
&lt;/h2&gt;

&lt;p&gt;You may have observed that the Data Science Profile has a &lt;a href="https://code.visualstudio.com/docs/datascience/data-wrangler" rel="noopener noreferrer"&gt;Data Wrangler Extension&lt;/a&gt; included by default. What is it and why should we care? Data Wrangler is a code-centric tool for data viewing, cleaning and analyzing - that works seamlessly with data files you open in Visual Studio Code.&lt;/p&gt;

&lt;p&gt;More importantly, it can automatically generate Pandas code to perform the same operations you perform in the UI, with easy ways to copy the code into a Jupyter Notebook or clipboard, to simplify your data analysis workflow even further. As a bonus, the extension automatically creates action buttons &lt;em&gt;within your Jupyter Notebooks&lt;/em&gt; in contexts where a Pandas DataFrame is returned. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Fdatascience%2Fdata-wrangler%2Ffull-dw-loop.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcode.visualstudio.com%2Fassets%2Fdocs%2Fdatascience%2Fdata-wrangler%2Ffull-dw-loop.gif" alt="Data Wrangler"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking this opens a new Data Wrangler view as shown, allowing you to &lt;em&gt;visually and interactively&lt;/em&gt; run operations to clean, filter, sort and analyze your data - before exporting generated code back to the Jupyter notebook into a Python cell exactly where you need it. This is a great way to &lt;em&gt;learn&lt;/em&gt; core Pandas operations for data cleaning, and build intuition around the &lt;em&gt;right&lt;/em&gt; operations to use for your data. &lt;strong&gt;And&lt;/strong&gt;, it allows you to document and share these steps with others in a reproducible manner.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Data Science Tutorial
&lt;/h2&gt;

&lt;p&gt;Let's bring all these elements together and see how Visual Studio Code works &lt;em&gt;in practice&lt;/em&gt; for enhanching our Data Science journey. First, take a minute to &lt;a href="https://code.visualstudio.com/docs/datascience/overview" rel="noopener noreferrer"&gt;review the Data Science section&lt;/a&gt; of the Visual Studio Code documentation.&lt;/p&gt;

&lt;p&gt;Then, review the &lt;a href="https://code.visualstudio.com/docs/datascience/data-science-tutorial" rel="noopener noreferrer"&gt;Data Science in VS Code Tutorial&lt;/a&gt; to get a sense of what you will learn by completing these steps &lt;a href="https://dev.to/data-science-day/week-2/1-codespaces/"&gt;using the Jupyter-Codespaces environment&lt;/a&gt; we set up earlier. The tutorial covers four stages of a data science workflow that we can adapt to our needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setup your environment&lt;/strong&gt; - we'll use our Jupyter-Codespaces template&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepare the data&lt;/strong&gt; - we'll launch Data Wrangler from the notebook&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Train &amp;amp; evaluate&lt;/strong&gt; - using scikit-learn (we'll revisit later)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a neural network&lt;/strong&gt; - using Keras and TensorFlow (we'll revisit later)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To make this easier, I've created a &lt;a href="https://github.com/nitya/pydata-analysis-workshop/blob/main/4-vscode/1-data-science-tutorial.ipynb" rel="noopener noreferrer"&gt;data-science-tutorial&lt;/a&gt; notebook under the &lt;code&gt;4-vscode/&lt;/code&gt; folder in the workshop repository with the first two stages of the tutorial completed as shown. Observe how the &lt;code&gt;df.head()&lt;/code&gt; output now shows a &lt;code&gt;Data Wrangler&lt;/code&gt; button below that launches the &lt;code&gt;Data Wrangler&lt;/code&gt; view when clicked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-prepare.8cNjJdzw_21exWR.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-prepare.8cNjJdzw_21exWR.webp" alt="VS Code Tutorial"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a screesnhot showing how we can switch the Data Wrangler into &lt;em&gt;Editing&lt;/em&gt; view, to perform operations on the data (e.g., sort, filter, group). These operations are recorded as &lt;strong&gt;Cleaning Steps&lt;/strong&gt; (see sidebar lower left), with the code for each step auto-generated in the Data Wrangler pane (bottom, right). and then &lt;em&gt;Export&lt;/em&gt; the generated code back to the notebook. When the steps are complete, then &lt;strong&gt;Export to notebook&lt;/strong&gt; (see menu option, top) to get the code automatically inserted into a Python code cell in the notebook.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-wrangle.2pjRI2uq_Z1lmlKO.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-wrangle.2pjRI2uq_Z1lmlKO.webp" alt="VS Code Tutorial"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the notebook as a sandbox to explore various operations interactively on the data file - and observe how the Pandas code generated matches the requirement.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Assignment: Try it out!
&lt;/h2&gt;

&lt;p&gt;It's your turn. &lt;a href="https://github.com/nitya/pydata-analysis-workshop/tree/main" rel="noopener noreferrer"&gt;Fork the repo&lt;/a&gt;, launch it in GitHub Codespaces, then open the &lt;code&gt;4-vscode&lt;br&gt;
/1-data-science-tutorial.ipynb&lt;/code&gt; notebook. You should see something like this - but with &lt;code&gt;Select Kernel&lt;/code&gt; at the top right. &lt;br&gt;
    - First, "Clear all outputs" to start fresh&lt;br&gt;
    - Then, "Select Kernel" and chose the default Python environment&lt;br&gt;
    - Then "Run All" to view the outputs from each cell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-setup.mzpXL1Ux_ZxkQHJ.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2F30daysof.github.io%2Fdata-science-day%2F_astro%2Fvscode-tutorial-setup.mzpXL1Ux_ZxkQHJ.webp" alt="VS Code Tutorial"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By completing the tutorial, you will not only get a good understanding of the steps involved in each stage, but you will end up with a notebook template you can reuse with other datasets, to experiment further and build your intuition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our next post, we'll explore the use of GitHub Copilot to automate the generation of notebooks, get explanations for code - and suggestions to build our intuition organicially - using this tutorial as a basis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>developers</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Data Science &amp; DevTools: GitHub Codespaces</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Fri, 15 Mar 2024 21:42:24 +0000</pubDate>
      <link>https://dev.to/azure/data-science-devtools-github-codespaces-2fn</link>
      <guid>https://dev.to/azure/data-science-devtools-github-codespaces-2fn</guid>
      <description>&lt;p&gt;Welcome to &lt;strong&gt;Developer Tools Week&lt;/strong&gt; in our  #14DaysOfDataScience journey. Today, let's talk about how we can setup and use pre-built development environments for productivity and convenience in learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We'll Learn
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What are Dev Containers?&lt;/li&gt;
&lt;li&gt;Why use GitHub Codespaces?&lt;/li&gt;
&lt;li&gt;What are Jupyter Notebooks?&lt;/li&gt;
&lt;li&gt;Using Codespaces-Jupyter Template&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignment&lt;/strong&gt;: &lt;a href="https://aka.ms/workshops/python-data-analysis"&gt;Fork the repo&lt;/a&gt;. Explore notebooks under &lt;code&gt;2-jupyter/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources&lt;/strong&gt;: Explore the &lt;a href="https://bit.ly/2024-datasci-collection"&gt;2024: Data Science Day Collection&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bookmark and revisit these for more information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bit.ly/2024-datasci-collection"&gt;Collection 1️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Data Science Tools &amp;amp; Techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/rai-hub/collection"&gt;Collection 2️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Responsible AI Principles &amp;amp; Tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/ai-studio/collection"&gt;Collection 3️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build Generative AI Apps End-to-End with Azure AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  It's Developer Tools Week!!
&lt;/h2&gt;

&lt;p&gt;Welcome to Developer Tools Week on #14DaysOfDataScience. &lt;/p&gt;

&lt;p&gt;Before we dive into the detail of today's post, let's set the stage for &lt;em&gt;what&lt;/em&gt; we'll cover this week, and why. The main goal is to jumpstart our learning journey into &lt;em&gt;data analysis and visualizaton&lt;/em&gt; (even if we lack expertise in data science or Python) by using developer tools and AI to fill in the gaps in knowledge and intuition. And, we want to use a &lt;strong&gt;goal-oriented approach to learning&lt;/strong&gt; where we don't boil the ocean (by trying learn everything) but instead focus on learning what we need, when we need it, to get things done.&lt;/p&gt;

&lt;p&gt;To be successful, we need our development environment to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frictionless&lt;/strong&gt; - I should be able to setup and get productive quickly. No more &lt;em&gt;"it works on my machine"&lt;/em&gt; comparisons. It just works for everyone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focused&lt;/strong&gt; - I should be able to ask question and solve issues without leaving my development environment. No more &lt;em&gt;"I'll Google it"&lt;/em&gt; distractions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Friendly&lt;/strong&gt; - I should be able to share my environment with others, and collaborate with them in real-time. No more &lt;em&gt;"I'll send you a screenshot"&lt;/em&gt; explanations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my &lt;a href="https://youtu.be/scvDXfCMHYU?t=3770"&gt;talk at Python Data Science Day&lt;/a&gt;, I outlined a roadmap for this journey, with an exercise for each step, as shown below. Today, we'll start that journey by exploring steps &lt;code&gt;01&lt;/code&gt; and &lt;code&gt;02&lt;/code&gt; in the roadmap.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WdDg0GZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/DataScienceDay-Roadmap.ixBAXxDK_1SuePL.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WdDg0GZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/DataScienceDay-Roadmap.ixBAXxDK_1SuePL.webp" alt="Dev Tools Roadmap" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What are Dev Containers?
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://containers.dev/"&gt;dev container&lt;/a&gt; is a Docker container that can be configured from a &lt;code&gt;devcontainer.json&lt;/code&gt; file, which in turn can be checked into your repository for version controlled usage, alongside your code. This allows you to define a consistent development environment that just works out of the box, and works the same way for everyone who launches it from your codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why use GitHub Codespaces?
&lt;/h2&gt;

&lt;p&gt;The figure below &lt;a href="https://docs.github.com/en/codespaces/overview?apiversion=2022-11-28"&gt;give an overview of GitHub Codespaces&lt;/a&gt;, a development environment that &lt;strong&gt;hosts the devcontainer in the cloud&lt;/strong&gt;, allowing you to connect to it from a &lt;em&gt;Visual Studio Code&lt;/em&gt; editor in your browser, or on your desktop. Simple open a repository in GitHub, click the &lt;code&gt;Code&lt;/code&gt; button, navigate to the &lt;code&gt;Codespaces&lt;/code&gt; tab, and launch a new instance - to get a pre-built dev environment with no added effort. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wf5E5NTA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://docs.github.com/assets/cb-77061/mw-1440/images/help/codespaces/codespaces-diagram.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wf5E5NTA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://docs.github.com/assets/cb-77061/mw-1440/images/help/codespaces/codespaces-diagram.webp" alt="GitHub Codespaces" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use the &lt;a href="https://code.visualstudio.com/docs/devcontainers/containers"&gt;same dev container configuration on your local device&lt;/a&gt; with Docker Desktop. But GitHub Codespaces has three added benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloud-hosted&lt;/strong&gt; - This means I can connect to the environment from anywhere, including mobile or tablet devices, with nothing more than a modern browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codespaces secrets&lt;/strong&gt; - Store environment variables (e.g., API keys) as Codespaces secrets associated with repositories &lt;em&gt;to limit risk of exposure&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt; - We can collaborate with others knowing that our setup is identical (including host hardware) - and can easily scale up our resource needs (CPU, storage) for the task without local hardware constraints.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What are Jupyter Notebooks?
&lt;/h2&gt;

&lt;p&gt;Having a dev container makes our setup frictionless, but how can we make the learning journey &lt;em&gt;friendly&lt;/em&gt; for collaboration with others? This is where &lt;a href="https://jupyter.org/"&gt;Jupyter Notebooks&lt;/a&gt; can help. They provide an interactive environment that combines code (Python cell) with documentation (markdown cells) - and is a popular tool for data scientists to capture insights and provide step-by-step guidance for replicating their work. GitHub Codespaces uses Visual Studio Code as the default editor, giving us &lt;a href="https://code.visualstudio.com/docs/datascience/jupyter-notebooks"&gt;excellent built-in support for Jupyter Notebooks&lt;/a&gt; to make usage more frictionless.&lt;/p&gt;




&lt;h2&gt;
  
  
  Using Codespaces-Jupyter Template
&lt;/h2&gt;

&lt;p&gt;Excellent - we've established that using a GitHub Codespaces (dev container) environment with a Visual Studio Code (editor) and Jupyter Notebooks (interactive code and docs) is the way to go. So .. &lt;em&gt;where should we start?&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Turns out GitHub has a great &lt;a href="https://github.com/github/codespaces-jupyter"&gt;codespaces-jupyter&lt;/a&gt; template that comes with out-of-the-box support for a data-science ready dev container configuration &lt;em&gt;and three sample notebooks&lt;/em&gt; to jumpstart your learning.&lt;br&gt;
I use this template in the &lt;a href="https://aka.ms/workshops/python-data-analysis"&gt;workshop repo&lt;/a&gt; I setup for this series - under the &lt;a href="https://github.com/nitya/pydata-analysis-workshop/tree/data-science-day-2024"&gt;data-science-day-2024&lt;/a&gt; branch. Let's explore that next. To get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Fork the &lt;a href="https://aka.ms/workshops/python-data-analysis"&gt;workshop repo&lt;/a&gt; to your GitHub account. Make sure you have the &lt;code&gt;main branch only&lt;/code&gt; unchecked so you get all the branches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switch to the &lt;code&gt;data-science-day-2024&lt;/code&gt; branch then launch Codespaces as shown below, directly in the browser.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wM48vtDi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/launch-codespaces.sVcqsum4_NQXTz.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wM48vtDi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/launch-codespaces.sVcqsum4_NQXTz.webp" alt="Launch Codespaces" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alternatively, clone the repo to your local device, make sure you have Docker Desktop running, then follow &lt;a href="https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-an-existing-folder-in-a-container"&gt;these instructions&lt;/a&gt; to open it in a local container. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Either way, once the container is ready, you should see a view like this showing a Visual Studio Code editor with that repo source already loaded.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AgR-E-qV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/dev-container-ready.BzudsLFr_NoBHl.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AgR-E-qV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/dev-container-ready.BzudsLFr_NoBHl.webp" alt="Dev Container Ready" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;You are now ready to start exploring the notebooks under &lt;code&gt;2-jupyter/&lt;/code&gt; and complete the associated exercises. To run a notebook the first time, open it in the editor - then &lt;code&gt;Select Kernel&lt;/code&gt;, pick the Python Environments option and select the default choice. Here's what that looks like for the &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SavjIlaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/select-kernel.VPDiCCqb_Z11Hbe5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SavjIlaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/select-kernel.VPDiCCqb_Z11Hbe5.webp" alt="Select Kernel" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, run the notebook (using &lt;code&gt;Run All&lt;/code&gt;) to execute the code as shown. Note the three kinds of content visible in this notebook - markdown cells (for documentation), code cells (for Python code) and output cells (for results).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vF9w83mF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/run-notebook.PAsC-adO_ZKzBRi.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vF9w83mF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://30daysof.github.io/data-science-day/_astro/run-notebook.PAsC-adO_ZKzBRi.webp" alt="Run Notebook" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;matplotlib&lt;/code&gt; notebook teaches you to use that library for basic 2D plotting, while the &lt;code&gt;population&lt;/code&gt; notebook introduces you to the &lt;code&gt;pandas&lt;/code&gt; library for data manipulation, using tabular data loaded from a CSV file. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;image-classifier&lt;/code&gt; notebook shows you &lt;a href="https://docs.github.com/codespaces/developing-in-a-codespace/getting-started-with-github-codespaces-for-machine-learning"&gt;how to do machine learning in Codespaces&lt;/a&gt; by training and testing a simple image classifier.&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Assignment&lt;/strong&gt;:
&lt;/h2&gt;

&lt;p&gt;We covered a lot of ground today. Now it's your turn to go out and try exploring GitHub Codespaces with Jupyter Notebooks for data analysis.&lt;/p&gt;

&lt;p&gt;The repository should now have an fourth notebook (&lt;code&gt;exercise&lt;/code&gt;) that you can use as a sandbox for experiments. Look at the example in there - then create your own code and markdown cells to try other ideas with different data.&lt;/p&gt;



&lt;p&gt;Want to browse more articles in this series? Follow this org:&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__512"&gt;
  &lt;a href="/azure" class="ltag__user__link profile-image-link"&gt;
    &lt;div class="ltag__user__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--drZmhdiQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Forganization%252Fprofile_image%252F512%252F64ce0b82-730d-4ca0-8359-2c21513a0063.jpg" alt="azure image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
      &lt;a href="/azure" class="ltag__user__link"&gt;Microsoft Azure&lt;/a&gt;
      Follow
    &lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a href="/azure" class="ltag__user__link"&gt;
        Learn how to build and manage powerful applications using Microsoft Azure cloud services. Explore the documentation and samples, skill yourself up with tutorials and training. Any language. Any platform. 
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;And bookmark and revisit these for more information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bit.ly/2024-datasci-collection"&gt;Collection 1️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Data Science Tools &amp;amp; Techniques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/rai-hub/collection"&gt;Collection 2️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Skill up on Responsible AI Principles &amp;amp; Tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://aka.ms/ai-studio/collection"&gt;Collection 3️⃣&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Build Generative AI Apps End-to-End with Azure AI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>githubcodespaces</category>
      <category>developers</category>
    </item>
    <item>
      <title>The Data Science Developer Experience</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Thu, 14 Mar 2024 06:17:18 +0000</pubDate>
      <link>https://dev.to/azure/the-data-science-developer-experience-1o42</link>
      <guid>https://dev.to/azure/the-data-science-developer-experience-1o42</guid>
      <description>&lt;p&gt;Welcome to week  &lt;code&gt;Day 07&lt;/code&gt; of &lt;strong&gt;Foundations of Data Science Week&lt;/strong&gt;. Today, we will explore tools used by data scientists and learn about what to expect at Data Science day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1iycqzz961ukrn60kfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1iycqzz961ukrn60kfm.png" alt="A Jupyter notebook in Visual Studio code displaying Python code and a data visualization" width="800" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Data science isn't just about having sharp analytical skills; the tools you use can really change how you tackle problems, accelerate the generation of insights, and make it easier to share what you've discovered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for Coding
&lt;/h2&gt;

&lt;p&gt;Visual Studio Code (VS Code) is a versatile code editor that supports a multitude of programming languages, including those commonly used in data science such as Python and R. To enhance its capabilities for data science, there are several extensions you can install:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python Extension&lt;/strong&gt;: Offers comprehensive coding support for Python, including IntelliSense, linting, debugging, and code navigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jupyter Extension&lt;/strong&gt;: Enables you to directly create, edit, and run Jupyter notebooks within VS Code. Jupyter Notebooks are an interactive computing platform where you can combine code execution, text, mathematics, plots, and other visual media. This tool is perfect for tasks like exploratory data analysis (EDA), data cleaning, statistical modeling, and visualization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for Analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pandas and NumPy&lt;/strong&gt;: Pandas and NumPy are foundational Python libraries for data science. Pandas provide high-level data structures and functions designed for practical data analysis and manipulation, while NumPy offers comprehensive mathematical functions, random number generators, linear algebra routines, Fourier transforms, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matplotlib and Seaborn&lt;/strong&gt;: Visualizing data is crucial for understanding complex datasets. Matplotlib and Seaborn are two Python libraries that offer a wide range of tools for creating static, animated, and interactive visualizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scikit-learn for Machine Learning&lt;/strong&gt;: When it comes to building predictive models, Scikit-learn is a Python library for  building predictive models. It features a wide array of supervised and unsupervised learning algorithms, tools for model fitting, data preprocessing, model selection, and evaluation, designed for ease of use and flexibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it out yourself: Your first Data Science project in Visual Studio Code
&lt;/h2&gt;

&lt;p&gt;In the following tutorial, you'll dive hands-on into the tools we've discussed in this series, experiencing firsthand some of the key data science tasks we've explored. This interactive session will not only solidify your understanding of these concepts but also prepare you for our next series of posts. There, we'll delve deeper into how to harness these tools' full potential and more, advancing your data science journey.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aka.ms/python/DataScienceDay/DataScienceVSCode"&gt;Data Science in VS Code tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't forget that you can continue to build on your skills in the &lt;a href="https://aka.ms/python/DataScienceDay/CSC"&gt;Data Science Cloud Skills Challenge&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Welcome to Data Science Day! 🎉
&lt;/h2&gt;

&lt;p&gt;Python Data Science Day is a fantastic opportunity for Python developers, entrepreneurs, data scientists, students, and researchers to come together and explore modern solutions for data pipelines and complex queries.&lt;/p&gt;

&lt;p&gt;The Python Data Science Day will feature a variety of sessions and lightning talks from experts in the field. Whether you’re interested in high-level programming topics or diving deep into specific features, there’s something for everyone. You'll be introduced to a variety of products and services, like the Data Science workload in Microsoft Fabric and Semantic Kernel SDK. You'll also learn more about data science techniques like data preparation, data analysis, and practical applications of these techniques.&lt;/p&gt;

&lt;p&gt;We hope you can join us and interact with data science community in the chat. Missed a session? You'll be able to catch the recordings of anything you missed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;Now that you've learned basic fundamentals, you'll continue your data science journey in the next series of posts, focused on levelling up your skills with hands on tutorials.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Data Science at Microsoft
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aka.ms/python/DataScienceDay/CSC"&gt;Check out the Data Science Cloud Skills Challenge&lt;/a&gt; if you want to go through some self-paced learning! This challenge is active until April 15th, 2024.&lt;/li&gt;
&lt;li&gt;Join us on Discord at &lt;a href="https://aka.ms/python-discord"&gt;https://aka.ms/python-discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aka.ms/python/DataScienceDay/DataScience-certification"&gt;Data Scientist Certifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aka.ms/python/DataScienceDay/DataScience-TrainingPath"&gt;Data Scientist Training Path&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>datascience</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
    <item>
      <title>The Data Science Lifecycle</title>
      <dc:creator>Renee Noble</dc:creator>
      <pubDate>Wed, 13 Mar 2024 06:07:01 +0000</pubDate>
      <link>https://dev.to/azure/the-data-science-lifecycle-4kl0</link>
      <guid>https://dev.to/azure/the-data-science-lifecycle-4kl0</guid>
      <description>&lt;p&gt;Welcome to week  &lt;code&gt;Day 06&lt;/code&gt; of &lt;strong&gt;Foundations of Data Science Week&lt;/strong&gt;. Today, we will walk through the data science lifecycle: an essential roadmap for transforming raw data into meaningful insights.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4koxre4qs7azgv9i2k1.png" alt=" Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) " width="800" height="414"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Introduction to the Data Science Lifecycle - &lt;em&gt;Sketchnote by &lt;a href="https://twitter.com/nitya"&gt;@nitya&lt;/a&gt;&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Data science isn’t just about crunching numbers; it’s a journey, from problem framing to actionable insights. At its core it's a process, and can be broken down into 5 stages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capturing: What's the problem?
&lt;/h2&gt;

&lt;p&gt;Data scientists must frame the problem they aim to solve clarity on the problem statement is crucial.&lt;br&gt;
This stage involves defining the problem as a question, understanding its context, and aligning it with organizational goals.&lt;/p&gt;

&lt;p&gt;Once the problem has been accurately captured, then next is the process of data collection. Identifying the problem at hand enables data scientists to capture high-quality data, which is the backbone of any successful data science project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Processing: Where do we go from here?
&lt;/h2&gt;

&lt;p&gt;The processing stage of the lifecycle is where the magic happens! Here, data is transformed into actionable insights. Most of this step is centered around discovering patterns in the data as well as applying machine learning models. However, there's additional techniques that take place in this step. Some of the tasks performed in this step are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Cleaning and Transformation:&lt;/strong&gt; Alter, or mold the data to make it uniform without errors or inaccuracies and more suitable for analysis. For instance, converting decimal numbers into currency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dimensionality Reduction&lt;/strong&gt;: Simplifying the model by removing excessive data that can create uncessacary model complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sampling&lt;/strong&gt;: Capturing a subset of data to make computations faster and manageable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Selection and Tuning&lt;/strong&gt;: There's a vast number of options for selecting the right model, which are evaluated using metrics like accuracy, precision, and recall.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Training and Evaluation&lt;/strong&gt;: Training models on prepared data and evaluating their performance to ensure accuracy and reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Analysis: What does the data tell us?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcaf9kjwfueuplwj6lhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcaf9kjwfueuplwj6lhm.png" alt="Visualization on the number of bee colonies from 1998 to 2012 " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The analysis stage is where data scientists dive deep into the processed data, and apply data analysis techniques to uncover the hidden patterns, trends, and correlations.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Insight Generation&lt;/strong&gt;: Extracting and articulating insights from the model outcomes, which involves understanding the why behind the predictions or classifications made by the models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Visualization&lt;/strong&gt;: Creating visual representations of the analysis results to communicate findings clearly and effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploratory Data Analysis (EDA)&lt;/strong&gt;: Technique used  to understand and summarize the main characteristics of a dataset, often visually.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Communication: How do we share the insights with everyone?
&lt;/h2&gt;

&lt;p&gt;The goal of the communication stage is to bridge the gap between data analysis and actionable insights, making complex findings accessible and understandable to stakeholders not directly involved in the data work. It entails:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reporting&lt;/strong&gt;: Crafting comprehensive reports that summarize findings in an accessible manner.&lt;br&gt;
&lt;strong&gt;Presentations&lt;/strong&gt;: Conveying insights through presentations, emphasizing key points and actionable recommendations with compelling storytelling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintenance: How do we ensure longevity?
&lt;/h2&gt;

&lt;p&gt;The maintenance stage focuses on sustaining the project's value over time through:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Monitoring&lt;/strong&gt;: Keeping an eye on the model’s performance to ensure its predictions remain relevant.&lt;br&gt;
&lt;strong&gt;Data Security&lt;/strong&gt;: Keeping the data secure through limiting access to only those who need it, adhering to local laws and regulations.&lt;br&gt;
&lt;strong&gt;Updating Models&lt;/strong&gt;: Refining and retraining models to adapt to new data or changes in underlying patterns.&lt;br&gt;
&lt;strong&gt;Feedback Loop&lt;/strong&gt;: Utilizing stakeholder and user feedback to continuously improve the model’s accuracy and effectiveness.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;Tomorrow is a brief introduction to the tools data scientists use, and details about &lt;a href="https://aka.ms/Python/DataScienceDay"&gt;Data Science Day&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aka.ms/python/DataScienceDay/DataViz"&gt;Data Science for Beginners: Data Visualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aka.ms/python/DataScienceDay/DataScienceLifecycle"&gt;Data Science for Beginners: Data Science Lifecycle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aka.ms/python/DataScienceDay/TDSP"&gt;The Team Data Science Process lifecycle (TDSP)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  More Data Science at Microsoft
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aka.ms/python/DataScienceDay/CSC"&gt;Check out the Data Science Cloud Skills Challenge&lt;/a&gt; if you want to go through some self-paced learning! This challenge is active until April 15th, 2024.&lt;/li&gt;
&lt;li&gt;Join us on Discord at &lt;a href="https://aka.ms/python-discord"&gt;https://aka.ms/python-discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/credentials/certifications/roles/data-scientist"&gt;Data Scientist Certifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/training/career-paths/data-scientist"&gt;Data Scientist Training Path&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>datascience</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
  </channel>
</rss>
