<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Grokking Python]]></title><description><![CDATA[Get exclusive hands-on lessons, tips, and industry news curated by Python pros. Master the world's most versatile and in-demand programming language.]]></description><link>https://www.grokkingpython.com</link><image><url>https://substackcdn.com/image/fetch/$s_!_1KD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff944938c-a7cb-4b50-a1d7-295eedf56fb7_601x601.png</url><title>Grokking Python</title><link>https://www.grokkingpython.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 30 Apr 2026 05:09:56 GMT</lastBuildDate><atom:link href="https://www.grokkingpython.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Educative]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[grokkingpython@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[grokkingpython@substack.com]]></itunes:email><itunes:name><![CDATA[The Educative Team]]></itunes:name></itunes:owner><itunes:author><![CDATA[The Educative Team]]></itunes:author><googleplay:owner><![CDATA[grokkingpython@substack.com]]></googleplay:owner><googleplay:email><![CDATA[grokkingpython@substack.com]]></googleplay:email><googleplay:author><![CDATA[The Educative Team]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Python debugging 101: Learn to conquer code chaos ]]></title><description><![CDATA[Explore the built-in pdb module and IDE-based debuggers to identify and resolve code issues quickly]]></description><link>https://www.grokkingpython.com/p/python-debugging-101-learn-to-conquer</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-debugging-101-learn-to-conquer</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 18 May 2023 14:01:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zJaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zJaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zJaP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 424w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 848w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 1272w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zJaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png" width="779" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:779,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:59007,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zJaP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 424w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 848w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 1272w, https://substackcdn.com/image/fetch/$s_!zJaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb5410ce-4db6-4c6e-acbd-641ec1694493_779x409.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Pythonistas, and Happy Thursday!</p><p>Welcome to this month's edition of Grokking Python, a Pythonic paradise where serpents of code weave their magic, and every byte is a new adventure!</p><p><strong>Picture this:</strong> You've been working on a cool new Python project and are super excited to show off your hard work and dazzle your colleagues with your coding prowess. But just as you're about to take a victory lap, you encounter a bug. The excitement quickly turns into despair as you stare at the screen, wondering how and where things went wrong. You know that somewhere in your code, there's a tiny mistake wreaking havoc on your masterpiece, but finding it feels like searching for a needle in a haystack. If only there were a way to navigate the complex labyrinth of your code and pinpoint those elusive errors&#8230;</p><p>That's where Python debuggers come in! These powerful tools are designed to make your life easier by helping you<strong> identify and resolve issues in your code</strong> quickly and efficiently.&nbsp;</p><p>With Python debuggers by your side, you can<strong> navigate through your code, examine problematic variables, and track errors </strong>like a seasoned pro quickly and efficiently. And the best part? You don't need years of coding experience or a degree in computer science to master these powerful tools&#8212;in fact, learning how to use Python debuggers is very beginner friendly, allowing you to progress from <a href="https://www.educative.io/path/zero-to-hero-in-python?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=">zero to hero</a> in no time.&nbsp;</p><p>In this game-changing article, we'll introduce you to the world of Python debuggers, exploring their essential features and capabilities. So let's dive in!</p><div><hr></div><h4>Start Mastering Python With Educative</h4><p>Learn to code with Python fundamentals, real-world problem-solving techniques, and simple hands-on programming challenges.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.educative.io/path/zero-to-hero-in-python?utm_content=&amp;utm_term=&amp;eid=&quot;,&quot;text&quot;:&quot;Start Learning Today!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.educative.io/path/zero-to-hero-in-python?utm_content=&amp;utm_term=&amp;eid="><span>Start Learning Today!</span></a></p><div><hr></div><h1>What exactly is debugging?</h1><p>Debugging is the process of<strong> identifying, analyzing, and resolving</strong> errors, issues, or anomalies in a computer program or software to ensure it functions correctly and efficiently. This process helps to improve the overall performance and reliability of the software. We use a debugger &#8211; a software tool to assist in the overall debugging process.</p><p>There are two common types of bugs in programming, i.e.;</p><ol><li><p><strong>Syntactic errors:</strong> These are errors relating to a code's wrong structure or syntax, e.g., omitting quotation marks or incorrect spellings.</p></li><li><p><strong>Semantic errors:</strong> Occur when a program is run with invalid logic or functions, causing it to generate unintended results or inappropriate behavior.</p></li></ol><p>A simple example of a syntax error in Python would be forgetting to close a parenthesis:</p><pre><code>print("Hello, world!"</code></pre><h1>What does a debugger do?</h1><p>Debuggers typically provide various features and functionalities, such as:</p><ul><li><p><strong>Execution control: </strong>Allows developers to walk through the program step by step, pause, or resume execution to monitor the program's behavior closely.</p></li><li><p><strong>Breakpoints:</strong> Enable developers to focus on problem areas by identifying specific points of code that will prevent the debugger from executing.</p></li><li><p><strong>Variable inspection:</strong> Allows analyzing variable and data structure values at certain points in a program's implementation, which helps identify inaccurate or un-declarable values.</p></li><li><p><strong>Call stack examination:</strong> Provides insight into the sequence of function calls and returns that led to the current point of execution, helping a user understand the program's flow and any potential issues.</p></li><li><p><strong>Error and exception tracking:</strong> Can identify where errors or exclusions are happening in a code, making it simpler to fix them.</p></li></ul><h1>Debug using Python's <code>pdb</code> module</h1><p>The <code>pdb</code> (Python Debugger) is a built-in Python module that allows developers to debug their code efficiently. It provides a range of features in an <strong>interactive</strong> manner, such as <strong>setting</strong> <strong>breakpoints, stepping through code, inspecting variables, and evaluating expressions.</strong> With <code>pdb</code>, programmers can identify and resolve issues in their code more effectively, leading to higher code quality and reduced development time.&nbsp;</p><p>To start using <code>pdb</code>, simply import the module and call its functions or execute your Python script with the <code>m- pdb</code> option.&nbsp;</p><p>We explain more in detail below:</p><ol><li><p>Import the <code>pdb</code> module</p></li></ol><p>Add the following line at the top of your Python script:</p><pre><code>import pdb</code></pre><h2>&nbsp; 2. Set a breakpoint</h2><p>Choose a point in your code where you want the debugger to pause execution. Then, insert the following line at that location:</p><pre><code>pdb.set_trace()</code></pre><p>This will create a breakpoint, allowing you to interactively debug your code at that specific point.</p><h2>3. Run your Python script&nbsp;</h2><p>Execute your script as you usually would, e.g., by running Python <code>your_script.py</code> in the terminal.</p><h2>4. Interact with the debugger</h2><p>When your code execution reaches the breakpoint, the <code>pdb</code> prompt (<code>pdb</code>) will appear in the terminal. You can now use various <code>pdb</code> commands to navigate and inspect your code:</p><ul><li><p><strong>n (next):</strong> Execute the current line and move to the next one.</p></li><li><p><strong>s (step):</strong> Step into a function call or execute the current line.</p></li><li><p><strong>c (continue):</strong> Continue execution until the next breakpoint or the end of the script.</p></li><li><p><strong>q (quit):</strong> Terminate the debugger and exit the script.</p></li><li><p><strong>l (list):</strong> Display the source code around the current line.</p></li><li><p><strong>p expression (print):</strong> Evaluate and print the value of an expression or variable.</p></li><li><p><strong>pp expression (pretty-print): </strong>Evaluate and print the value of an expression or variable with better formatting.</p></li><li><p><strong>w (where): </strong>Display the current position in the call stack.</p></li></ul><h2>5. Debug your code</h2><p>Utilize the available commands to navigate your code, examine variable values, and pinpoint problems. Modify your code as needed, and run the script again to view the impact of your adjustments.</p><h2>6. Remove or disable breakpoints</h2><p>Once you have resolved the issues, remove the<strong> </strong><code>pdb.set_trace()</code><strong> </strong>lines from your code or comment them out. This will prevent the debugger from interrupting your code execution in the future.</p><h1>Debugging with IDEs</h1><p>While <code>pdb</code> is a powerful tool, its command-line nature may not be the best option for all developers, especially new developers or those less experienced with debugging in Python.</p><p>In contrast, <strong>IDEs offer a more visual and interactive approach to debugging</strong> &#8211; providing a graphical interface for navigating your code and monitoring variables.</p><p>PyCharm, Visual Studio Code, Spyder, and Eclipse with PyDev are some of the most popular Python IDEs with powerful debugging features.&nbsp;&nbsp;</p><p>Some advantages of using IDEs for debugging include:</p><ul><li><p><strong>Visual representation</strong>: The graphical representation of your code structure provided by IDEs can assist you in navigating your codebase and make your code simpler.</p></li><li><p><strong>Streamlined debugging workflow</strong>: Debugging tools are integrated within the IDE, providing a seamless experience without switching between different tools or windows.</p></li><li><p><strong>Customizable settings</strong>: You can personalize your debugging environment using IDEs, allowing you to design a unique debugging workspace.</p></li></ul><p>Therefore, IDEs don't just simplify the debugging process but also enhance developers' productivity.</p><h1>The final byte: continue learning about Python debuggers&nbsp;</h1><p>As we conclude our slither through the world of Python debuggers, it's clear that these <strong>robust tools</strong>, just like the real snakes, can coil around challenges and help developers strike with precision to enhance their code quality and productivity.&nbsp;</p><p>Leveraging the capabilities of Python debuggers such as <code>pdb</code> and feature-rich IDEs like PyCharm, Visual Studio Code, Spyder, and Eclipse with PyDev can help you to effectively navigate your codebase, identify errors, and fix issues with confidence and ease.</p><p>Regardless of your experience level, Python debuggers offer invaluable support in refining your debugging abilities and boosting your overall development process. However, to use Python debuggers effectively, it's essential to master the programming language itself. To help you with this, we recommend our popular new&nbsp; <a href="https://www.educative.io/path/zero-to-hero-in-python?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=">Zero to Hero in Python</a> skill path, which will help you in:</p><ul><li><p>Mastering <strong>real-world problem-solving techniques</strong></p></li><li><p>Understanding basic Python syntax and functionality</p></li><li><p>Creating simple <strong>Python programs</strong></p></li><li><p>Gaining insights into object-oriented programming</p></li><li><p>Crafting scalable, modular, and clean code</p></li><li><p>Practicing widely-used <strong>algorithms and data structures</strong></p></li><li><p>Exploring step-by-step Python solutions</p></li><li><p>Building a rock, paper, scissors game and its desktop app</p></li><li><p>Employing the <strong>Tkinter library </strong>in Python</p></li><li><p>Enhancing programming skills and jumpstarting your career as a Python developer</p></li></ul><p>So, don't delay; take the plunge further into the world of Python and unlock your full coding potential.&nbsp;</p><p><em>Happy debugging!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Full-stack Python web development: How to start today]]></title><description><![CDATA[Python is most popular for back-end development, but it can also help you on the front-end]]></description><link>https://www.grokkingpython.com/p/full-stack-python-web-development</link><guid isPermaLink="false">https://www.grokkingpython.com/p/full-stack-python-web-development</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 13 Apr 2023 14:01:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2ce0415c-7464-482c-ab23-00e508285fda_959x584.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pr4U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pr4U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pr4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32504,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pr4U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!pr4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8fe945-4e14-47aa-bc7e-ff7e1ba27872_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hello, Grokking Python readers!</p><p>It's no secret that the Python programming language is a fantastic choice for many use cases. You might recall our previous explorations of Python in areas like <strong><a href="https://www.grokkingpython.com/p/python-in-action-scientific-research">scientific research</a></strong>, <strong><a href="https://www.grokkingpython.com/p/python-in-action-finance-3-practical">finance</a></strong>, and <strong><a href="https://www.grokkingpython.com/p/python-in-action-game-development">game development</a></strong>. We also looked at Python and <strong><a href="https://www.grokkingpython.com/p/python-in-action-web-development">web development</a></strong>, but today we're diving deeper to answer a specific question: Can you become a <em><strong>full-stack</strong></em> Python developer?</p><p>Now, there are many benefits to using Python for web development, but it's most popularly used for back-end development. While Python can also be used for front-end development, languages such as JavaScript are a more common choice. At any rate, whether you stick purely to Python or use other programming languages, we&#8217;ll cover all you need to know in this edition.</p><p>Today, we&#8217;ll discuss why <strong>Python is a great tool to take with you on your journey to become a full-stack developer</strong>, and what you&#8217;ll need to learn along the way.</p><div><hr></div><h4>Dive into Full-Stack Development With Educative</h4><p>Learn to build web projects with the pillars of HTML, CSS, and JavaScript and get a website up and running online.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.educative.io/path/zero-to-hero-in-front-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=&quot;,&quot;text&quot;:&quot;Start Learning the Front-End Today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.educative.io/path/zero-to-hero-in-front-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid="><span>Start Learning the Front-End Today</span></a></p><p>Learn how to design, build, and deploy efficient, scalable, and secure back-end systems using Python and the Django framework. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.educative.io/path/zero-to-hero-in-back-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=&quot;,&quot;text&quot;:&quot;Start Learning the Back-End Today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.educative.io/path/zero-to-hero-in-back-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid="><span>Start Learning the Back-End Today</span></a></p><div><hr></div><h2><strong>What does a full-stack developer do?</strong></h2><p>Being a full-stack engineer means you can work both ends of <a href="https://www.educative.io/blog/beginner-guide-to-web-dev?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">web app development</a>: The <a href="https://www.educative.io/blog/frontend-vs-backend-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">front-end </a><em><a href="https://www.educative.io/blog/frontend-vs-backend-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">and</a></em><a href="https://www.educative.io/blog/frontend-vs-backend-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid="> the back-end</a>. Front-end development concerns how the application appears to the user. In other words, <strong>front-end development involves programming the browser</strong>, or the client-end. On the other hand, back-end development concerns the logic that governs the application. <strong>Back-end development involves programming the remote server</strong> and communicating with one or more database(s).</p><p>The concepts of back-end and front-end are illustrated in the following figure:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tsUW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tsUW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 424w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 848w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 1272w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tsUW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png" width="987" height="666" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:666,&quot;width&quot;:987,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tsUW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 424w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 848w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 1272w, https://substackcdn.com/image/fetch/$s_!tsUW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89ee0ac0-68ca-47e6-bd75-e961141544b8_987x666.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Front-end vs back-end</figcaption></figure></div><p>In theory, a full-stack developer can take an application from the design stage all the way through to deployment. However, in practical terms, this is only feasible for very small projects. While a specialized back-end developer might have a deeper knowledge of back-end development, such as <a href="https://www.educative.io/blog/database-design-tutorial?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">database design</a>, a full-stack developer has more of a generalized knowledge. On a large real-world project,<strong> full-stack engineers are generalists who help bridge the gap </strong>between two highly specialized forces: Front-end and back-end developers.</p><h2><strong>Full-stack development with Python</strong></h2><p>There are many benefits to using the <a href="https://www.educative.io/blog/web-development-in-python#suited?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Python programming language for web development</a>, including a relatively fast development time. However, the <strong>best part about using Python as a full-stack engineer might be the career opportunities it can open up for you</strong>. There remains a demand for full-stack and back-end Python engineers. Because Python is commonly used in <a href="https://www.educative.io/blog/machine-learning-for-data-science?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">data science and machine learning</a>, you can add these to your back-end skillset as you advance as a full-stack engineer.</p><h3><strong>Back-end development using Python</strong></h3><p>There are numerous Python back-end frameworks, including Flask, Django, Turbogears, CherryPy, Pyramid, Bottle, and Falcon. However, we&#8217;ll discuss the most popular frameworks: Django and Flask.</p><p><strong>Django</strong></p><p><a href="https://www.educative.io/blog/what-is-django-python?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Django</a> is a free and open-source project with a large developer community. As such, it sees frequent enhancements in its features of security, user and roles management, and database migration management. Django also has a REST framework that fully supports RESTful Web APIs.</p><p><strong>Flask</strong></p><p><a href="https://www.educative.io/blog/python-flask-tutorial?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Flask is another popular Python web framework</a>. More lightweight than Django, it&#8217;s known as a micro-framework. Flask is commonly used to develop the back-end of APIs. You&#8217;ll find many pluggable features available in the Flask community.</p><h3><strong>Front-end development using Python</strong></h3><p>Unlike back-end development, <strong>front-end development in Python is still in its infancy.</strong> Instead, HTML, JavaScript, and CSS are typically used at the front-end. However, a few front-end Python frameworks have been developed recently, such as Skulpt, Brython, and Anvil.</p><p>Since it&#8217;s relatively more mature, let&#8217;s discuss Anvil. Anvil is a <strong>full-stack framework</strong> that can be used for both front-end and back-end development. We can use Anvil to develop a web page&#8217;s user interface (UI) components through drag-and-drop components on Anvil&#8217;s graphical interface. We can also modify the properties of UI components, and associate those components with events (Python functions). Anvil helps with back-end functionalities such as database manipulation, file management, and user authentication.</p><h2><strong>What you&#8217;ll need to learn to become a Python full-stack developer</strong></h2><p>What you need to learn depends on your past experience. Here&#8217;s an overview of what you&#8217;ll need to know.</p><h3><strong>Programming in Python</strong></h3><p>If you don&#8217;t already know Python, you&#8217;ll want to <a href="https://www.educative.io/blog/how-to-learn-python-in-5-easy-steps?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">learn Python well</a>. You&#8217;ll be programming servers with it, after all. But before you start doing that, make sure you&#8217;re comfortable with Python fundamentals, from algorithms and data structures, to <a href="https://www.educative.io/blog/how-to-use-oop-in-python?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">object-oriented programming (OOP) with Python</a>. While the latter isn&#8217;t absolutely necessary, you might consider learning OOP techniques as it can reduce your development time in the long run.</p><p>On that note, here are some <a href="https://www.educative.io/blog/tips-beginner-python-developers?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">tips for learning Python as a beginner developer</a>.</p><h3><strong>Web development fundamentals</strong></h3><p>If you&#8217;re an absolute <a href="https://www.educative.io/blog/beginner-guide-to-web-devv?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">beginner to web development</a>, you&#8217;ve got two sides to acquaint yourself with.</p><p><strong>Front-end development</strong></p><p>Here&#8217;s a minimal list covering what you&#8217;ll need to know to get started with front-end development:</p><ul><li><p>Web fundamentals of <a href="https://www.educative.io/blog/html-beginners-tutorial-build-from-scratch?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">HTML</a>, <a href="https://www.educative.io/blog/level-up-javascript-coding-challenges?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">JavaScript</a>, and <a href="https://www.educative.io/blog/css-text-color-font?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">CSS</a></p></li><li><p>A front-end JavaScript framework like <a href="https://www.educative.io/blog/react-angular-vue-comparison?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">AngularJS, ReactJS, VueJS</a></p></li><li><p>A <a href="https://www.educative.io/blog/what-is-jquery-javascript-library?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">JavaScript library like jQuery</a></p></li><li><p>Optionally, a CSS framework like Bootstrap</p></li></ul><p>Check out this suggested <a href="https://www.educative.io/blog/roadmap-to-become-a-front-end-developer?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">roadmap for learning front-end development</a>.</p><p><strong>Back-end development</strong></p><p>Here&#8217;s a minimal list covering what you&#8217;ll need to know to get started with back-end development:</p><ul><li><p>Designing and building <a href="https://www.educative.io/blog/what-is-an-api?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Application Programming Interfaces (APIs)</a>, including <a href="https://www.educative.io/blog/what-are-rest-apis#rest-api?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">REST APIs</a></p></li><li><p><a href="https://www.educative.io/blog/crud-operations?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">CRUD operations</a></p></li><li><p>A database like <a href="https://www.educative.io/blog/mongodb-vs-mysql?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">MySQL, MongoDB</a>, <a href="https://www.educative.io/blog/mongodb-versus-postgresql-databases?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">PostgreSQL</a>, or SQLite</p></li><li><p><a href="https://www.educative.io/blog/web-development-in-python#frameworks?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Python back-end frameworks</a> such as Django or Flask</p></li><li><p><a href="https://www.educative.io/blog/git-branching-tutorial?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Git</a> for source code management and version control</p></li></ul><p>For suggested steps to learn web development in Python, check out our <a href="https://www.educative.io/blog/web-development-in-python#web-dev">roadmap to web development in Python</a>.</p><blockquote><p><strong>Tip</strong>: There are various web frameworks to choose from. To narrow down your choices, consider the factors that are your priority. For instance, you might want to opt for a tool that has decent community support and good documentation.</p></blockquote><h2><strong>Tips for becoming a Python full-stack developer</strong></h2><p>Here&#8217;s some guidance for your journey as a full-stack Python developer:</p><ul><li><p><strong>Think of this as a long-term journey</strong>: If you&#8217;re starting from scratch, you may have a long road ahead of you &#8211; and that&#8217;s exciting! If you get impatient with your progress, remember that the time you spend learning and practicing now will minimize your knowledge gap, which will only help strengthen the foundation for your future growth.</p></li><li><p><strong>Aim for generalist knowledge first, then go deeper</strong>: Since your range of knowledge covers several topics, you don&#8217;t need to have the same depth of knowledge as a specialist would. Start with the minimum you need to know, and practice that until you&#8217;re great at it. You&#8217;ll gain a greater depth of knowledge with work experience over time.</p></li><li><p><strong>Plan your progress with small, achievable goals</strong>: Your learning curve might take a while simply because full-stack engineering involves various languages, frameworks, and techniques. If you have a lot of new concepts to learn, it helps to structure a plan that decomposes your final goal into several small goals with realistic deadlines.</p></li><li><p><strong>Focus on one tech stack at a time</strong>: Master one stack first. You can (and should) pick up additional technologies later on.</p></li><li><p><strong>Learn with peers</strong>: You can do this in any way that suits you. Find a fellow Python learner, take classes, do a bootcamp, or join a Python Discord server.</p></li></ul><h2><strong>Start mastering full-stack development today</strong></h2><p>No matter where you are in your journey as a developer, Python is a great programming language to support you in full-stack development. Learning the skills to carry a web application from design to deployment will not only be a fascinating learning process, but an excellent move for your career as well.</p><p>To help you learn the essentials of full-stack development, we've created two Skill Paths aimed at beginners: <strong><a href="https://www.educative.io/path/zero-to-hero-in-front-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Zero to Hero in Front-end Web Development</a></strong> and <strong><a href="https://www.educative.io/path/zero-to-hero-in-back-end-web-development?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=">Zero to Hero in Back-end Web Development</a></strong>. Designed for individuals <strong>without any programming experience</strong>, these paths will get you up and running with the pillars of front-end and back-end development and core back-end development concepts. While the front-end path focuses on HTML, CSS, and JavaScript, the back-end path grounds you in <strong>Python fundamentals </strong>and<strong> object-oriented programming in Python</strong> before teaching you to design and build back-end systems using the <strong>Django framework</strong>. By completing both paths, you'll develop a complete full-stack arsenal of knowledge to create your own websites from front to back.</p><p><em>Happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Why ChatGPT won't take your Python programmer job]]></title><description><![CDATA[Is ChatGPT our new AI overlord? (No, and here&#8217;s how it can help Python devs)]]></description><link>https://www.grokkingpython.com/p/why-chatgpt-wont-take-your-python</link><guid isPermaLink="false">https://www.grokkingpython.com/p/why-chatgpt-wont-take-your-python</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 16 Mar 2023 14:01:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Okwq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Okwq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Okwq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Okwq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg" width="1298" height="641" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:641,&quot;width&quot;:1298,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:59379,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Okwq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Okwq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65adbbfa-a833-41dc-ae17-758039e323ec_1298x641.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers, and happy Thursday!</p><p>Today, <strong>machine learning</strong> and <strong>artificial intelligence (AI)</strong>&nbsp; are changing the face of technology and our world. AI and machine learning technologies are rapidly advancing, with considerable buzz around Microsoft&#8217;s AI-powered Bing, Google Bard, and ChatGPT.</p><p>But this week, OpenAI unveiled <strong>ChatGPT-4</strong>, an <strong>updated version</strong> of its predecessor, ChatGPT-3. ChatGPT-4 comes with exciting new features &#8212; the biggest highlight being its multimodal capabilities such as image creation.&nbsp;</p><p>Chatbots like ChatGPT have great potential in various industries like e-commerce, medicine, and sales. But their abilities make many people nervous, including software developers.&nbsp;</p><p>The common worry is, <strong>will technologies like ChatGPT take over our jobs</strong>?</p><p>Not quite. While technologies like ChatGPT can be used to boost our productivity as developers, <strong>they can't replace human judgment</strong>, or fully take our jobs.</p><p>In fact, they open up many opportunities to Python developers, too!</p><p>Let's dive in.</p><div><hr></div><h4>Start a Free Trial with Educative</h4><p>Access over 500 interactive courses on Python Programming, Machine Learning, Data Science, and Cloud Computing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.educative.io/trial?utm_campaign=free_trial&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096&quot;,&quot;text&quot;:&quot;Start a Free Trial&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.educative.io/trial?utm_campaign=free_trial&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096"><span>Start a Free Trial</span></a></p><div><hr></div><h2>How ChatGPT is changing the industry</h2><p>There's no doubt that tools like ChatGPT are changing the landscape of the tech industry. Let's explore some of the ways in which they do.</p><h3>Making coding more accessible</h3><p><strong>Advancements in technology </strong>have made it <strong>easier for more people to become developers</strong> throughout computer science history. Abstraction methods, such as high-level programming languages, compilers, and IDEs, have enabled engineers to write human-readable code without understanding machine code.&nbsp;</p><p>Additionally, the evolution of AI assistants like Github Copilot shows promise in making coding a more accessible and enjoyable experience for all. These advancements are indicative of a positive trend toward making complex technologies more approachable to a wider range of people.</p><p>Benefitting from abstraction doesn&#8217;t necessarily mean that developers would be any less skilled or knowledgeable. Similarly, not knowing how a car engine works doesn't make you a bad driver, and using autocomplete doesn't make you a bad engineer. <strong>You can still build wonderful applications</strong> while benefiting from high-level languages like Python or machine learning tools like ChatGPT.&nbsp;&nbsp;</p><h3>Aiding research&nbsp;</h3><p>Having been trained on diverse sources such as CommonCrawl, WebText2, and code in Python, JavaScript, and CSS, ChatGPT uses its extensive training dataset to generate responses in response to human input.&nbsp;</p><p>This ability to interpret human input makes ChatGPT a valuable research tool that can provide accurate results and save you from the arduous task of scouring Google search results or StackOverflow. While it's important to verify its responses, ChatGPT can still offer helpful explanations which can aid you in learning and understanding new concepts. This benefit can significantly streamline your search for relevant knowledge while coding.</p><p>For example, you might input the following query: <em>"I'm getting a 'ValueError: Shapes not compatible' error in TensorFlow. What does it mean, and how can I fix it?"</em></p><p>Having been trained on a vast array of text data, including Python code and TensorFlow documentation, ChatGPT can provide a helpful response to your query. It may explain what the error message means and suggest possible solutions. It might even offer code snippets or links to relevant documentation to help you better understand and solve the problem.</p><h3>Minimizing redundancy and tedium</h3><p>You can expect ChatGPT to <strong>make your coding more productive and less prone to bugs</strong>. As it is continuously updated to cater to complex requirements, you can utilize it to eliminate grunt work and speed up your productivity and testing.</p><p>In fact, over the next decade, developers will see a reduction in tedious tasks thanks to the evolution of AI assistants like ChatGPT. This could include the automation of unit tests, the generation of test cases based on parameters, the analysis of code to suggest security best practices, and the automation of QA.</p><p>Similar to how APIs simplified developers' lives, ChatGPT is expected to improve efficiency similarly. As an example, Stripe's payment processing previously required developers to write 1,000 lines of code, but now only requires a single API. With AI assistants like ChatGPT, developers can automate and simplify tedious tasks, freeing up their time for more valuable work.</p><h2>Limitations of ChatGPT</h2><p>While ChatGPT may seem intelligent, it is important to note that it operates based on a large set of data to generate what it determines to be the most appropriate responses. As a result, it has certain limitations.&nbsp;</p><h3>ChatGPT can't think for you</h3><p>ChatGPT is a valuable tool, but it <strong>cannot replace human judgment</strong>. Its learning models rely on content fed by developers, which can sometimes be erroneous.</p><p>For instance, regardless of what code snippet ChatGPT generates, it is crucial to exercise your own judgment to ensure that it is correct and applicable to your specific problem, as with any code snippet found on sites such as StackOverflow.</p><p>With that being said, human judgment is still required to differentiate between good and bad code. While you may receive AI assistance to write code, it will never override the value of human input. After all, AI is a man-made innovation, not the other way around. Just blindly copying and pasting code snippets from ChatGPT can have severe consequences, so exercising caution and judgment is essential.</p><h3>ChatGPT is not capable of problem-solving</h3><p>As a developer, you are responsible for understanding a problem, generating multiple potential solutions, and then utilizing a programming language to translate the most effective solution into code for a computer or compiler. While machine learning tools such as ChatGPT can assist in increasing coding speed, they cannot perform problem-solving tasks on your behalf.</p><p>As a developer, <strong>problem-solving is an essential skill set you need to have to succeed. </strong>This is also why machine learning tools won't have a dire impact on developer jobs.&nbsp;</p><h3>ChatGPT won't get you hired</h3><p>ChatGPT can produce a code snippet, but it is not a replacement for an entire coding interview. The major part of the interview focuses on problem-solving rather than code writing, which typically only accounts for only 5-10 minutes of a 45-minute coding interview.</p><p>You still need to ask the right questions to show your comprehension of the problem, narrate your thought process, and narrow down a solution. ChatGPT can't help you with any of this.&nbsp;</p><h2>ChatGPT won't take our jobs</h2><p>The rise of IDEs and APIs may have streamlined certain development processes, but it <strong>did not diminish the demand for skilled developers</strong> - and the same can be said for ChatGPT.&nbsp;</p><p>Machine learning tools can undoubtedly boost our productivity, but they cannot replace the power of human thinking and capability. As we mentioned above, these tools can be both i<strong>mpressively accurate and hilariously off-base,</strong> leaving humans' critical thinking and problem-solving skills irreplaceable. Furthermore, ChatGPT is not a panacea for complex issues nor a substitute for innovation. Nevertheless, these tools can help alleviate some of the tedious tasks that bog us down, freeing us up to tackle more ambitious problems &#8212; such as advancing the field of AI.</p><p>In fact, as a Python developer, there's a lot you can gain from the growth of AI technologies!</p><h2>What ChatGPT means for Python developers</h2><p>In the midst of the AI boom, <strong>having strong Python skills can set you apart</strong> and make you more marketable to potential employers. As big data continues to grow in importance, software developers will need to equip themselves with the right skills and knowledge to transform data into actionable business solutions and strategies.</p><p><strong>Understanding how AI works and what it can be used for</strong> can help you harness big data to go above and beyond what traditional software development alone can provide. You can discover patterns, uncover trends, automate processes, and simplify complex tasks by leveraging AI techniques such as natural language processing (NLP), computer vision, and deep learning. With this knowledge, you can develop innovative solutions that streamline workflows, save time and resources, and ultimately provide greater value to your clients or organization.</p><p>Acquiring <strong>proficiency in Python</strong> is an essential part of that journey. Fortunately, Educative's <a href="https://www.educative.io/path/zero-to-hero-in-python-for-machine-learning?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Zero to Hero in Python for Machine Learning</a> skill path covers everything you need to know to get started.&nbsp;</p><p>This skill path covers the following:</p><ul><li><p>Basic Python programming concepts&nbsp;</p></li><li><p>Machine learning terminology</p></li><li><p>Supervised and unsupervised learning methods</p></li><li><p>Different types of algorithms</p></li><li><p>Data preprocessing, feature selection, and model evaluation&nbsp;</p></li><li><p>Machine learning libraries and frameworks<strong> </strong>such as NumPy and Pandas</p></li></ul><p>By the end, you'll have hands-on experience using Python libraries and frameworks for machine learning.</p><p>Now over to you: <em>Do you think ChatGPT can help you? Does AI inspire you on your Python journey &#8212; if so, how? Leave your thoughts in the comments below!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Ace the coding interview in Python: 3 more patterns]]></title><description><![CDATA[Understand these essential patterns and make your interview prep easier!]]></description><link>https://www.grokkingpython.com/p/ace-the-coding-interview-in-python</link><guid isPermaLink="false">https://www.grokkingpython.com/p/ace-the-coding-interview-in-python</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 02 Mar 2023 15:00:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MIUK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MIUK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MIUK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MIUK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33679,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MIUK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!MIUK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c351877-bc0d-46e9-b6eb-7800ae384ff1_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers, and happy Thursday!</p><p>Welcome to another edition of Grokking Python! In our <a href="https://www.grokkingpython.com/p/simplify-python-coding-interview">Dec. 15 edition</a>, we delved into <strong>three common interview patterns</strong> that are currently popular among interviews.&nbsp;</p><p>Today, we will continue exploring <strong>important coding patterns for interviews.</strong></p><p>Learning coding patterns is crucial for succeeding in programming interviews. Knowing these patterns also demonstrates to interviewers that you have a clear understanding of programming concepts and can apply them to any real-world problems. Other than that, understanding coding patterns can help you write more <strong>efficient and maintainable code</strong>, which is handy for working on large-scale projects.&nbsp;</p><p>With that said, let's dive into <strong>three additional key patterns</strong> to help you understand and solve common coding interview questions.&nbsp;</p><div><hr></div><h4>Ace Your Interview Prep with Educative</h4><p>Prepare for the entire engineering interview loop with confidence with hands-on courses developed by FAANG hiring managers.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.educative.io/m/tech-interview-prep-roadmap?utm_campaign=topic_interview_prep&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096&quot;,&quot;text&quot;:&quot;Start Learning Today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.educative.io/m/tech-interview-prep-roadmap?utm_campaign=topic_interview_prep&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096"><span>Start Learning Today</span></a></p><div><hr></div><h2>In-place Reversal of a Linked List pattern</h2><p>The <strong>in-place reversal of a linked list pattern</strong> allows us to <strong>reverse a linked list without creating a new list or using extra memory</strong>, i.e., only using the given nodes.&nbsp;</p><p>This pattern is helpful when we have to reverse a set of nodes in a linked list without adding more memory. (To review linked lists and other important data structures, <a href="https://www.educative.io/blog/8-python-data-structures#linked-list?eid=5082902844932096">check out this blog</a>.) To achieve an in-place reversal, we need to keep track of the <strong>current, next, and previous</strong> nodes simultaneously while iterating through the linked list. Using this approach, we can easily change the links between the nodes to point to a different node.&nbsp;</p><p>The advantage of using this pattern instead of the na&#239;ve approach of iterating with nested loops is that we can achieve a time complexity of<em> O(n)</em> instead of <em>O(n^2)</em> and space complexity of <em>O(1)</em>.</p><h3><strong>Real-world applications</strong></h3><p>Many problems in the real world use the in-place reversal of a linked list pattern. Let&#8217;s look at some examples:</p><ul><li><p><strong>Stocks: </strong>Let's say that in the stock market, there are several transactions that need to be executed by multiple brokers. We can assign transactions to each broker in the same order in which they arrived via the in-place reversal pattern.</p></li></ul><ul><li><p><strong>E-commerce:</strong> On an e-commerce website, products are often arranged in a list, with the first half in ascending order based on price and the second half in ascending order based on popularity. To display the products on a landing page, we need to pair them in a way that the first product is cheaper and the second product is more popular. This can be achieved by using the in-place reversal pattern.</p></li></ul><h2>Two Heaps pattern</h2><p>The <strong>two heaps pattern</strong> employs either <strong>two max-heaps, two min-heaps, or one max-heap and one min-heap concurrently</strong> to address the problem at hand. For a heap containing <strong>n</strong> elements, inserting and removing an element both take <em>O(logn)</em> time, while accessing the root element takes <em>O(1) </em>time, which holds the minimum element in a min-heap or the maximum element in a max-heap. (To refresh your knowledge about the heap data structure, <a href="https://www.educative.io/blog/data-structure-heaps-guide?eid=5082902844932096">check out this blog</a>.)</p><p>In some situations, we can divide the data into two parts, enabling the use of a min-heap on one section to locate the smallest element and a max-heap on the other section to find the largest element or vice versa. For instance, two max-heaps could be used to locate the two largest numbers from two different datasets. Conversely, two min-heaps would be utilized when we need to identify the two smallest numbers from two distinct datasets.</p><h3><strong>Real-world applications</strong></h3><p>Let's look at some examples of real-world problems that share the two heaps pattern.</p><ul><li><p><strong>Video streaming:</strong> It's common for packet drops and buffering to occur during a user session, affecting the user experience. Since we're interested in recording the median number of buffering events that occur in a specific session, we can use the two-heaps pattern in this scenario.&nbsp;</p></li></ul><ul><li><p><strong>Netflix: </strong>Another scenario is when, as part of demographic research, we want to know about the median age of our viewers. Here, we can implement a feature to efficiently update the median age whenever a new user signs up for video streaming via the two heaps pattern.&nbsp;</p></li></ul><h3>The Hash Map pattern</h3><p>The <strong>hash map pattern</strong> is a method for storing data that aims to reduce the time taken to find and access values.&nbsp;</p><p>We store data in hash maps as <strong>key-value pairs</strong>. It is similar to arrays in that array values are stored against numeric keys, which are referred to as indexes. The value of these indexes is always sequential integers starting from <strong>0</strong>, and cannot be selected by the user. As a result, if we need to locate an element within an array and do not know its index, we must search the entire array, which in the worst-case scenario can take <em>O(N) </em>time.</p><p>Conversely, hash maps enable the use of <strong>flexible keys</strong>. Each key is unique and corresponds to a value, allowing us to locate its value in <em>O(1)</em> time.</p><h3><strong>Real-world applications</strong></h3><p>Many problems in the real world share the hash maps pattern, such as:</p><ul><li><p><strong>Telecommunications:</strong> Creating a phone book that employs a person's name as the key and their phone number as the corresponding value.</p></li><li><p><strong>E-commerce:</strong> Retrieving information about a product by using its product ID as the key.</p></li><li><p><strong>File system</strong>: When a user interacts with a file system, they see the file name and the path. The system uses a hash map to store the relationship between the file name and its path.</p></li></ul><h2>Prepare for the entire interview loop with confidence</h2><p>We&#8217;ve now covered <strong>six common coding interview patterns</strong> over two editions of Grokking Python. If you&#8217;ve been following along, you're off to a great start in preparing for coding interviews! However, that alone doesn&#8217;t necessarily equate to success in the broader tech interview process.&nbsp;That&#8217;s because the coding interview is just one part of the typical interview loop. </p><p>To differentiate yourself from other candidates in the loop, you'll need a <strong>complete and comprehensive interview prep plan</strong>. If you're ready to take charge of your future and launch your plan today, Educative is here to guide you step-by-step with a <a href="https://www.educative.io/m/tech-interview-prep-roadmap?utm_campaign=topic_interview_prep?utm_source=substack&amp;eid=5082902844932096">full range of practical courses</a> designed by FAANG hiring managers. Our materials cover coding interviews, System Design interviews, behavioral interviews, and other related topics, so you can prepare for every phase of the interview.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How I would learn Python from scratch today]]></title><description><![CDATA[Educative's co-founder and CEO shares his top advice for beginners]]></description><link>https://www.grokkingpython.com/p/how-i-would-learn-python-from-scratch</link><guid isPermaLink="false">https://www.grokkingpython.com/p/how-i-would-learn-python-from-scratch</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 16 Feb 2023 15:01:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0c70cebf-6d97-40a5-941a-0bddb5824f3f_1357x868.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9h6d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9h6d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9h6d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg" width="1118" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:1118,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154190,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9h6d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9h6d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042f41d2-7d8d-493d-8b77-e86e5d09228c_1118x485.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Fahim ul Haq, left, and his brother Naeem ul Haq.</figcaption></figure></div><p>Hello, Grokking Python readers. My name is Fahim, and I'm a software engineer of 15+ years and the co-founder and CEO of Educative, the hands-on developer learning platform behind this newsletter. Our team has been <strong>curating key Python information and resources</strong> for you over the past several months, but I haven't had a chance to join the conversation.&nbsp;</p><p>So today, I wanted to tell you a little more about Educative and address a question we often hear: <strong>how should I learn to code as a complete beginner?</strong>&nbsp;</p><p>If you're reading this, my answer will probably strike a chord: I believe <strong>Python</strong> is a <strong>terrific programming language for beginners</strong> looking to break into programming. No matter what language you use, however, I recommend learning certain foundational skills before working on your first line of code.&nbsp;</p><p>In this newsletter, I'll talk about an exciting new resource that will help you build that <strong>strong programming foundation</strong> while learning Python, along with my top advice for absolute beginners.</p><p>But first, let's go back a few years to when we were just beginning as a learning platform.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Why we founded Educative</h2><p>When I left Facebook in 2015 to found Educative with my brother Naeem, we had one goal: to create world-class tech skills courses for developers like us.</p><p>At the time, we were <strong>disappointed by the quality of learning resources</strong> available for developers:&nbsp;</p><ul><li><p>We were tired of scrubbing<strong> videos</strong> where there was minimal structure to the content and the learning was passive.</p></li><li><p>We didn&#8217;t enjoy learning from <strong>books</strong>, which we found dense and quickly became outdated.</p></li><li><p>We felt that the quality of courses on <strong>major learning platforms</strong> was subpar, because those websites weren&#8217;t specially built to support developer learning.</p></li><li><p>All of these learning options typically required <strong>additional setup and configuration.</strong></p></li></ul><p>We created Educative with developers in mind: a <strong>hands-on platform</strong> designed to help people <strong>efficiently learn valuable programming skills</strong> and <strong>level up their careers</strong>.</p><blockquote><p>This fact might interest you: <strong>We built Educative in Python</strong> in 2015. Coming from my background in C++, it was a good compromise between the functionality we needed and ease of learning. Also, Google Cloud and the Google App Engine supported Python, which was crucial.</p></blockquote><p>Several years and <strong>over 500 courses</strong> later, our mission is the same, and Educative aims to <strong>empower learners at all levels</strong>, even those aspiring developers who haven't started learning to code. With that group in mind, we recently introduced a new course for complete beginners that I think will interest you: <strong><a href="https://www.educative.io/courses/learn-to-code-python-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code: Python for Absolute Beginners</a></strong>.</p><p>This course is for<strong> beginners with no programming experience</strong>. It is designed to get you hands-on with the foundational logic, problem-solving, and computer science skills you would learn in a <strong>boot camp </strong>or<strong> university program</strong>. Best of all, you can learn online at your own pace.</p><p>The content was designed by educators with decades of experience teaching people to code. Their objective is to make it <strong>easy, intuitive, and rewarding to get started</strong>.</p><p>Essentially, we want to get you <strong>thinking like a coder</strong> before you even type your first lines of code. You will do this by practicing the <strong>logic and problem-solving skills you already have</strong>, and learning to apply them in a coding context.</p><p>These basics are core to every developer&#8217;s toolkit <strong>but often get overlooked by new learners</strong>. Internalizing foundational problem-solving skills as the first thing you do will pay dividends down the road, and it&#8217;s a basis that will enable you to learn any programming language.</p><p><strong>In fact, it&#8217;s exactly how I would learn to code if I were just starting.</strong></p><p>I am really excited about this course. First, I want to share my personal thoughts on what makes it such a <strong>great starting point</strong> for aspiring coders. Then I will share my <strong>personal recommendations</strong> for getting the most out of it.</p><h2>Learn to Code with Educative: Python for Absolute Beginners</h2><p>We started by launching <strong>six courses</strong> (more coming soon) in popular programming languages to teach fundamental coding concepts. But you're probably most interested in <strong><a href="https://www.educative.io/courses/learn-to-code-python-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code: Python for Absolute Beginners</a></strong>. (The course is also available in <a href="https://www.educative.io/courses/learn-to-code-javascript-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">JavaScript</a>, <a href="https://www.educative.io/courses/learn-to-code-java-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Java</a>, <a href="https://www.educative.io/courses/learn-to-code-ruby-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Ruby</a>, <a href="https://www.educative.io/courses/learn-to-code-c-sharp-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">C#</a>, and <a href="https://www.educative.io/courses/learn-to-code-cpp-for-absolute-beginners?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">C++</a>.)</p><p>To create these courses, we partnered with university instructors with <strong>decades of experience teaching undergraduate students to code</strong>. Our approach was to distill the core elements of a computer science 101 course or boot camp into a core set of problems that will get you confidently practicing your skills. (Everything is hosted on Educative&#8217;s interactive, setup-free learning platform for ease and accessibility).</p><p>You will <strong>start simply</strong> by practicing your logic and problem-solving skills. Then we will introduce a few essential <strong>computer science concepts</strong> to help you put these skills into context. Finally, you will learn how to translate your solutions into <strong>instructions that a computer can understand</strong> and execute.</p><p>This is actually the <strong>most important skill that every developer needs to learn</strong>: to see a problem, identify a possible solution, and present that solution in a way that is comprehensible by a computer. Developers use different programming languages, paradigms, and tech stacks to translate their solutions into a format that computers understand &#8212; but everything is grounded in <strong>problem-solving and logic skills</strong>.</p><h2>A note about choosing a language</h2><p>You may be committed to Python. If not, I advise you not to think too hard about which language to start with. The truth is that once you master your first language, it will be much easier to jump into a new one down the road. This is because the <strong>fundamentals are essentially the same in any language</strong>. Programming languages essentially allow you to translate your solutions into a format that computers understand.</p><p>We created these Learn to Code courses to help you <strong>learn the problem-solving and logic skills that underpin software development</strong> as a discipline. Knowing the specific syntax of each language is a secondary skill, one that you will pick up as you go.</p><p>In short, you will learn the essential differences between each language in these courses. However, at this level, they have a lot more in common than you might think.</p><h2>My biggest piece of advice for new learners</h2><p>Here is my biggest piece of advice to learners just starting out:</p><p><strong>Take it slow in the beginning.</strong></p><p>For many new learners, there is often a desire to try to race through new material in the first 24 hours or first week. It is worth <strong>taking the time to really internalize the fundamentals.</strong></p><p>You will be able to <strong>accelerate faster</strong> once you build that <strong>strong foundation</strong>. Trust me, you don&#8217;t want gaps in your foundation, which would require you to relearn concepts down the road. It will take you more time in the long run &#8212; something I can speak to from personal experience! (This focus on building the right foundation is a big reason why these courses are so helpful).</p><p>One last thought: anyone can learn how to code, but you do have to be <strong>motivated</strong> to put in the work. It also helps to have great learning resources that are tailored to your needs, which also provide structure and guidance.</p><p>That&#8217;s exactly why we created these new courses. We really hope you enjoy them.</p><h2>What&#8217;s next from Educative?</h2><p>At the end of the day, we believe that <strong>learning to code is a lot like learning to swim</strong>: you have to jump in the pool and just start doing it. We designed these courses as a great way to get your feet wet.</p><p>Don&#8217;t worry &#8212; <strong>we won&#8217;t throw you into the deep end just yet</strong>. You will receive the <strong>structure and support</strong> you need to develop the fundamentals at a pace that works for you. These courses are easy to follow, intuitive to grasp, and will set you up for success as you embark upon your learning journey.</p><p>In addition, we have a lot more exciting Learn to Code content on the docket. Coming soon are new courses to help programmers understand <strong>classic computer science concepts</strong> (e.g., data structures and algorithms), and learn how to reach maximum efficiency and performance.</p><p>Last thing: <strong>we are always looking for feedback</strong>! Feedback helps us get better, which helps us support learners better. I love hearing directly from the learners, so please share any feedback you have in the comments.</p><p><em>Happy learning!</em></p>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for January 2023]]></title><description><![CDATA[Meta AI, open-source contributions, AWS access key leak, and more!]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-january-2023</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-january-2023</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 02 Feb 2023 15:01:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JJq5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Grokking Python readers, and happy Thursday!</p><p>We have a lot of news to cover from January, so let&#8217;s jump right in!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Meta AI's new open source data science package</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JJq5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JJq5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 424w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 848w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 1272w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JJq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png" width="642" height="272.49725274725273" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:618,&quot;width&quot;:1456,&quot;resizeWidth&quot;:642,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JJq5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 424w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 848w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 1272w, https://substackcdn.com/image/fetch/$s_!JJq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf55929-1435-49a0-93c7-049a733c7ee9_1600x679.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://import-balance.org/">import-balance.org</a></figcaption></figure></div><p>Meta AI, the researchers, scientists, and software engineers behind Meta's artificial intelligence efforts, have released a new Python package called "<em><a href="https://import-balance.org/">Balance</a></em>." The package is still in beta and undergoing active development, but for now, it provides a simple workflow for addressing biased data samples.</p><p>Biased samples can frequently occur in survey statistics, polls, and other relatively small data sets, resulting in skewed or inaccurate results.&nbsp;</p><p><em>Balance</em> aims to correct these biases and more:</p><ul><li><p><a href="https://en.wikipedia.org/wiki/Sampling_bias">Sampling bias</a></p></li><li><p><a href="https://en.wikipedia.org/wiki/Participation_bias">Non-response bias</a></p></li><li><p><a href="https://en.wikipedia.org/wiki/Missing_data">Missing data</a> (that is not completely random)</p></li><li><p>Treated vs. untreated groups (observational studies)</p></li></ul><p>The best part about this package is that all of Meta AI's incredible research is <strong>open source</strong>. <em>Balance</em> is intended for any data professionals working in Python with potentially biased data. The <a href="https://import-balance.org/docs/docs/overview/">documentation</a> for the package states that <em>Balance</em> is intended for survey methodologists, demographers, UX researchers, market researchers, general data scientists, statisticians, and machine learning engineers.</p><h2>Hyperfinity optimizes platform with Snowflake's Snowpark for Python</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i3O4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i3O4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 424w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 848w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 1272w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i3O4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png" width="1322" height="724" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:724,&quot;width&quot;:1322,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i3O4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 424w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 848w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 1272w, https://substackcdn.com/image/fetch/$s_!i3O4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4c86af4-829c-42e0-ac0e-09fa3ba75ec0_1322x724.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">One of Hyperfinity's decision trees, source: <a href="https://www.python.org/success-stories/how-hyperfinity-is-streamlining-its-serverless-architecture-with-snowflakes-snowpark-for-python/">python.org/success-stories</a></figcaption></figure></div><p>Hyperfinity is a SaaS decision science platform that uses machine learning, AI, and data science to make business decisions. Their data models can inform numerous pricing, supply chains, CRM/ERP, and content management optimizations. With this recent update, Hyperfinity streamlined its serverless architecture <em>and</em> simplified life for its developers.</p><p>Snowflake's data cloud solutions are ideal for a data-intensive company like Hyperfinity. The REST API, Snowpark, allows Hyperfinity to speed up compute times for array and matrix multiplication. Since a large chunk of the data Hyperfinity works with are customer decision trees, they can reduce cost and time investment.</p><p>Python's affinity for built-in libraries made the integration of Snowpark extremely simple. Snowflake is even partnering with the package manager, Anaconda, to make the development administration process as smooth as possible.&nbsp;</p><p>All of this is incredibly validating when it comes to seeing the power of Python in action, and great news for data scientists and AI researchers. You can check out <a href="https://www.python.org/success-stories/how-hyperfinity-is-streamlining-its-serverless-architecture-with-snowflakes-snowpark-for-python/">Hyperfinity's write-up</a> on the transition if you want to read more.&nbsp;</p><h2>Live AWS keys found on PyPI</h2><p>Reddit user u/Most-Loss5834 scanned every package on the Python Package Index (PyPI) and found <strong>57 live, valid access keys</strong>. It's unfortunately very common for developers to accidentally leak their login credentials on sites like GitHub or PyPI. Still, most of the time, the keys are found and deprecated automatically. Seeing live keys, especially ones connected to big names in tech, <strong>comes as a surprise</strong>.</p><p>The live AWS keys were from a vast range of organizations:</p><ul><li><p>Amazon themselves</p></li><li><p>Intel</p></li><li><p>Stanford, Portland University, and Louisiana University</p></li><li><p>The Australian Government</p></li><li><p>Terradata</p></li><li><p>Delta Lake</p></li><li><p>Top Glove</p></li></ul><p>The oldest functioning key was over <em><strong>10 years old</strong></em>! The circumstances that lead to these keys remaining live are unclear, and this discovery serves as another reminder to <strong>be extra careful when handling access credentials</strong>. Even if your professional organization has built-in automated detection and deprecation services, it is crucial to double-check your GitHub repositories and any other public-facing code to avoid leaving yourself or your employer vulnerable.</p><p>Below is just a <strong>small excerpt</strong> of the enormous regular expression used to find all of the keys.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KH-k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KH-k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 424w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 848w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 1272w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KH-k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png" width="1456" height="117" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:117,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KH-k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 424w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 848w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 1272w, https://substackcdn.com/image/fetch/$s_!KH-k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33eeab0d-de03-49d4-ae93-61e3f35ab048_1488x120.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://tomforb.es/i-scanned-every-package-on-pypi-and-found-57-live-aws-keys/">tomforb.es</a></figcaption></figure></div><p>If you're interested in learning more, <a href="https://tomforb.es/i-scanned-every-package-on-pypi-and-found-57-live-aws-keys/">the original blog</a> documents the process used to scan PyPi and find these keys.&nbsp;</p><h2>1<sup>st</sup> IndyPy meetup of 2023</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uyV7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uyV7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 424w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 848w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 1272w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uyV7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png" width="586" height="339.4027149321267" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:884,&quot;resizeWidth&quot;:586,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uyV7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 424w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 848w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 1272w, https://substackcdn.com/image/fetch/$s_!uyV7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6a2692-a71b-4cd0-b8e3-9b567a44041b_884x512.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://www.sixfeetup.com/company/events/indypy-january-meetup">sixfeetup.com</a></figcaption></figure></div><p>The Indianapolis Python community recently hosted their first meetup of the year on January 10th! <strong>IndyPy </strong>was organized by the Python and cloud computing consulting company <a href="https://www.sixfeetup.com/">Six Feet Up</a>. <strong>Mariatta Wijaya</strong>, a <strong>Senior Developer Relations Engineer</strong> at<strong> Google</strong>, notable Python Core developer, and PyCon 2023-24 Chair, discussed ways individuals can contribute to the Python community.&nbsp;</p><p>Contributing to an open-source community is an honored tradition in software development. It is a great way to give back and provide value to other engineers. Still, not everyone is familiar with best practices when making pull requests, standards for documenting code, and other nitty-gritty details when contributing to open-source projects. The open-source community is massive, and it's easy to feel overwhelmed or lost.&nbsp;</p><blockquote><p>If you're interested in learning more about getting started in the Python's open source community, this post covers <a href="https://www.grokkingpython.com/p/level-up-your-python-open-source">FAQs and Python projects in need of contributions</a>.&nbsp;</p></blockquote><p>Wijaya went over how individuals can find their niche in an open-source community, emphasizing that it's important not to try to solve every problem. Instead, try to maximize your impact by <strong>sticking to your strengths</strong>.</p><p>You can find her slide deck here: <a href="https://speakerdeck.com/mariatta/contributing-to-python">https://speakerdeck.com/mariatta/contributing-to-python</a></p><p>Additionally, you can follow Mariatta Wijaya on <a href="https://twitter.com/mariatta">Twitter</a>, <a href="https://fosstodon.org/@mariatta">Fosstodon</a>, and <a href="https://www.linkedin.com/in/mariatta">LinkedIn</a>.</p><h2>PSF Diversity and Inclusion meeting</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Clpq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Clpq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 424w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 848w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 1272w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Clpq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png" width="598" height="298.49916247906197" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:596,&quot;width&quot;:1194,&quot;resizeWidth&quot;:598,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Clpq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 424w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 848w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 1272w, https://substackcdn.com/image/fetch/$s_!Clpq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9284dc-23b4-48d4-a16b-643fe7054300_1194x596.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://twitter.com/ThePSF/status/1619006073846861834?cxt=HHwWlMC8jcjc7vcsAAAA">twitter.com/ThePSF</a></figcaption></figure></div><p>This was the first diversity and inclusion meeting that the Python Software Foundation (PSF) has held. If you missed it, don't worry, they are scheduled for once a quarter for the year. During this meeting, people in the Python community from around the world gather to discuss news, current events, and the inner workings of the PSF.</p><p>A registration link for the next meeting is currently unavailable, so we recommend following the Python Software Foundation on Twitter to stay updated on events like this.</p><p>Attendance is <strong>free</strong>! However, be sure to pay attention to your time zone if you plan on attending.&nbsp;</p><h2>New Chemics package available</h2><p>It's not just the data scientists who lucked out this month. There's something for chemists too! Chemics v23.1 is now available. This new version brings several improvements, the most notable of which is improved handling of Chemical Abstracts Service (CAS) numbers due to an updated gas viscosity function. This may not sound like a glamorous update to the average layperson, but this update is worth looking into for the gas geochemists out there.</p><p>The following example, taken from the <a href="https://pypi.org/project/chemics/">Chemics PyPI project description</a>, demonstrates the use of the rhog() function to calculate the density of a gas based on three parameters: molecular weight, temperature, and pressure.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HP4E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HP4E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 424w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 848w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 1272w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HP4E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png" width="1456" height="145" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:145,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HP4E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 424w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 848w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 1272w, https://substackcdn.com/image/fetch/$s_!HP4E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e5fbfe-756a-434f-ad5b-f1d427b4c801_1568x156.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://pypi.org/project/chemics/">pypi.org</a></figcaption></figure></div><h2>Brand new Educative learning content</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kobV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kobV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 424w, https://substackcdn.com/image/fetch/$s_!kobV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 848w, https://substackcdn.com/image/fetch/$s_!kobV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 1272w, https://substackcdn.com/image/fetch/$s_!kobV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kobV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png" width="396" height="198" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:266,&quot;width&quot;:532,&quot;resizeWidth&quot;:396,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kobV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 424w, https://substackcdn.com/image/fetch/$s_!kobV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 848w, https://substackcdn.com/image/fetch/$s_!kobV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 1272w, https://substackcdn.com/image/fetch/$s_!kobV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d30f0-8bd5-495c-a175-4fc495643d4b_532x266.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>We're always adding new courses to the catalog, so we'd like to take the time to spotlight a brand-new course that is greatly relevant to our audience of Pythonistas.</p><h3><a href="https://www.educative.io/courses/grokking-dynamic-programming-a-deep-dive-using-python?eid=5082902844932096">Grokking Dynamic Programming: A Deep Dive using Python</a></h3><p>If you've ever been interested in learning more about dynamic programming (DP), now is your chance. This brand-new course teaches DP from the very beginning. Dynamic programming is one of the more advanced optimization techniques for recursive software. Even if you have yet to encounter dynamic programming in your career, it could be worth learning for a future technical interview. Some of the most challenging coding interview problems rely on dynamic programming.</p><p>This course explains the basics and then breaks down five underlying patterns of DP. Each pattern is applied to multiple real-world scenarios to equip you with practical DP problem-solving skills.</p><h2>More content is coming soon &#128064;</h2><p>We hope you enjoyed this recap of all that happened in the Python world this January. We'll be highlighting some more excellent, fresh content later this month. If you want to learn to code in a new and engaging way, be sure to check out our forthcoming editions of Grokking Python.&nbsp;</p><p><em>In the meantime, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10 APIs to level up your Python development game]]></title><description><![CDATA[Expand your skill set with integrations for AI, development tasks, and more]]></description><link>https://www.grokkingpython.com/p/10-apis-to-level-up-your-python-development</link><guid isPermaLink="false">https://www.grokkingpython.com/p/10-apis-to-level-up-your-python-development</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 19 Jan 2023 15:01:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7MPW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7MPW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7MPW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 424w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 848w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 1272w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7MPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png" width="748" height="366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:366,&quot;width&quot;:748,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7MPW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 424w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 848w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 1272w, https://substackcdn.com/image/fetch/$s_!7MPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9072eef-7916-489a-b3e4-d8a60d97d884_748x366.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers, and happy Thursday!</p><p>Welcome to a brand-new edition of Grokking Python! Today, we will talk about <strong>Application Programming Interfaces, or APIs,</strong> which act as a bridge between two different software systems by providing communication through a set of established protocols.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you are a developer or software engineer looking to level up your game, then you should definitely check out APIs. They are a crucial part of many developers&#8217; skill sets and are used for front-end and web application development, software engineering, and even data science. In fact, a lot of fields rely on APIs to make sure different software work together seamlessly.</p><p>But that's not all. Working with APIs is also a great way to build dynamic apps and demonstrate your skills to potential employers. Plus, getting started with an API that aligns with your field or interests can help you gain real-world experience. </p><p>In this edition, we'll share a curated list of 10 APIs that may appeal to you or align with your interests. We'll also provide learning resources for these APIs to teach you how to work with them. All the courses use Python, so you can explore these integrations in a familiar programming language.&nbsp;</p><h2>A note for those just starting out</h2><p>If you're just beginning with APIs, consider checking out a <a href="https://www.educative.io/blog/what-is-an-api?eid=5082902844932096">high-level overview</a> covering different types and their functionalities. Additionally, APIs use built-in components like endpoints, resources, keys, and calls, all of which help them accomplish their goals. It&#8217;s worth reading up on these, too. </p><p>Now, on to the APIs!</p><h2>1. Microsoft Computer Vision APIs</h2><p>Microsoft has released its Microsoft Computer Vision APIs as part of Azure Cognitive Services, which provides cloud-based image and video analysis capabilities.</p><p>Key features of these APIs include:&nbsp;</p><ul><li><p>Analyzing video in real-time</p></li><li><p>Extracting text automatically</p></li><li><p>Enhancing content discoverability</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/microsoft-computer-vision-api-python?eid=5082902844932096">Integrating Microsoft Computer Vision API with Python</a></p><h2>2. OpenAI API</h2><p>OpenAI's Natural Language Processing API, which is built on the advanced GPT-3 AI model, can perform various NLP tasks and even convert text to code using its "Codex" technology. This API, from the creators of the popular ChatGPT model, is used by companies such as IBM, Salesforce, Cisco, and Intel.</p><p>Key features of this API include:</p><ul><li><p>NLP capabilities such as language translation, text summarization, and question answering</p></li><li><p>Integration with various programming languages and frameworks</p></li><li><p>Customizable models for specific use cases</p></li><li><p>Access to a wide range of pre-trained models and fine-tuning options</p></li><li><p>Scalability and support for large-scale projects</p></li><li><p>The ability to work with various types of text, including unstructured and structured text data</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/open-ai-api-natural-language-processing-python?eid=5082902844932096">Using OpenAI API for Natural Language Processing in Python</a></p><h2>3. GitHub API</h2><p>GitHub comes with a <a href="https://www.educative.io/blog/what-are-rest-apis?eid=5082902844932096">Rest API</a> that helps developers automate repetitive tasks and achieve additional levels of functionality across their projects. The GitHub API utilizes the JSON format to pull information directly from GitHub and return it. Additionally, it enables multiple developers working on the same project to update pull requests and commits on branches of repositories automatically.</p><p>Key features of this API include:&nbsp;</p><ul><li><p>Code management</p></li><li><p>Collaboration</p></li><li><p>Deployment</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/codebase-github-api-python?eid=5082902844932096">Managing Your Codebase with the GitHub API in Python</a></p><h2>4. Dropbox API</h2><p>Dropbox provides various file management services, such as editing, sharing, and remote access, through its cloud storage platform. The updated Dropbox API v2 includes additional features like full-text search, thumbnails, and sharing files. Developers can easily access and save files on Dropbox using the Chooser and Saver components. Additionally, webhooks can be used to automatically notify users of any changes made to a specific file.</p><p>Key features of this API include:&nbsp;</p><ul><li><p>Enabling specialized process flows</p></li><li><p>Granting administrator functionalities permissions</p></li><li><p>Interacting directly with Dropbox files</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/dropbox-api-python?eid=5082902844932096">Get Started with the Dropbox API in Python</a></p><h2>5. Wise API</h2><p>Wise is a London-based service for global bank accounts that offers seamless transfers between 50 different currencies. Wise aims to connect international customers and businesses by eliminating reliance on banks and their hidden exchange rate markups. They built the platform to streamline the currency exchange process and create new opportunities for fledgling businesses and world travelers.</p><p>Wise offers several different APIs in its developer suite:</p><ul><li><p>Payouts</p></li><li><p>Banks</p></li><li><p>Affiliates</p></li><li><p>Receive money</p></li><li><p>Open banking</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/money-wise-api-python?eid=5082902844932096">Sending and Receiving Money with Wise Payouts API in Python</a></p><h2>6. Blogger API</h2><p>The Blogger API allows users to manage their blog by providing functionality to create, update, and delete posts and also retrieve page view analytics. It operates on five key resources, namely:</p><ul><li><p>Blogs&nbsp;</p></li><li><p>Posts</p></li><li><p>Comments</p></li><li><p>Pages&nbsp;</p></li><li><p>Users</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/blogger-api-python?eid=5082902844932096">Blogging Using the Blogger API in Python</a> </p><h2>7. AccuWeather APIs</h2><p>AccuWeather is a technology that specializes in weather forecasting and reporting. They offer two types of APIs: the <strong>Core weather API</strong> and the <strong>MinuteCast API</strong>. The Core weather API includes features such as daily and hourly weather forecasts and current weather conditions. The MinuteCast API, on the other hand, gives a precise forecast for precipitation in a specific area for the next 120 minutes.</p><p>AccuWeather APIs are further subdivided into:</p><ul><li><p>Locations API</p></li><li><p>Forecast API</p></li><li><p>Current Conditions API</p></li><li><p>Indices API</p></li><li><p>Weather Alarms API</p></li><li><p>Alerts API</p></li><li><p>Imagery API (satellite imagery)</p></li><li><p>Tropical API (monitors tropical storms)</p></li><li><p>Translations (multiple language translations)</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/forecasts-accuweather-api-python?eid=5082902844932096">Tracking Forecasts with the AccuWeather APIs in Python</a></p><h2>8. Ticketmaster API</h2><p>Ticketmaster is one of the world's most popular event ticketing platforms and offers a variety of APIs, including:&nbsp;</p><ul><li><p>The Discovery API</p></li><li><p>Partner API</p></li><li><p>Inventory Status API</p></li><li><p>International Discovery API</p></li><li><p>Season Ticketing API</p></li><li><p>Presence API for venues and ticket scanning.</p></li></ul><p>The Discovery API and Inventory Status API are the most useful for general users.</p><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/event-ticketmaster-api-python?eid=5082902844932096">Surfacing Event Data with the Ticketmaster APIs in Python</a></p><h2>9. Reddit API</h2><p>Developers commonly use the Reddit API to build tools such as bots. You may undoubtedly have encountered a comment bot while browsing Reddit. These types of applications collect data from comments on specific domains and respond accordingly. These features are especially beneficial for moderation, community guidelines, and notifications for new posts.</p><p>Key features of this API include:</p><ul><li><p>Retrieving data for posts and comments</p></li><li><p>Searching for posts and comments based on various criteria</p></li><li><p>Submission of new posts and comments, including text, images, and links</p></li><li><p>Management of a user's account</p></li><li><p>Moderating a subreddit</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/reddit-api-python?eid=5082902844932096">Getting Started with the Reddit APIs in Python</a></p><h2>10. YouTube Data API</h2><p>YouTube, the world's most popular video playback service, offers a range of APIs as part of its Google Developers Suite. These APIs are highly functional and well-documented and can be used to integrate YouTube functionality into your own app or website. The YouTube Data API, in particular, is useful for accessing information such as channel activity, comments and ratings, and search results.</p><p>Key features of this API include:&nbsp;</p><ul><li><p>Searching for videos and channels</p></li><li><p>Retrieving video and channel information</p></li><li><p>Uploading and managing videos</p></li><li><p>Retrieving video analytics</p></li><li><p>Retrieving comments</p></li><li><p>Managing live streams</p></li></ul><p><strong>Start learning</strong>: <a href="https://www.educative.io/courses/youtube-data-api-python?eid=5082902844932096">Integration With YouTube Data API in Python</a></p><h2>Take the next step with APIs</h2><p>We hope you enjoyed this edition of Grokking Python! Whether you're a beginner or a more experienced developer, APIs are a valuable tool that can help you take your skills to the next level. We've discussed some of the most popular and widely used APIs, and working with them can add great capabilities to your apps. But there are many more to explore. </p><p>If you&#8217;re interested in continuing your learning, the course <a href="https://www.educative.io/path/become-an-api-integrator?eid=5082902844932096">Become an API Integrator</a> is a great place to start.</p><p>Which API do you want to try next? Let us know in the comments below.</p><p><em>Happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for December 2022]]></title><description><![CDATA[PyCon 2023 registration is now open! Plus, new versions of Python are now available.]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-december</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-december</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 05 Jan 2023 15:01:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YKHF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Grokking Python readers, and happy new year!</p><p>Before we all look ahead to 2023, let's recap what happened in the world of Python in December. It was a little bit of a slow month, so we'll keep it brief.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Congratulations to the 2023 Python Steering Council members</h2><p>The Steering Council members for 2023 have been elected! The council is responsible for governing the development of the language. The five developers in charge of the 2023 council are Brett Cannon, Pablo Galindo Salgado, Emily Morehouse, Gregory P. Smith, and Thomas Wouters. Congratulations to the council members and to special recognition to Emily Morehouse as she is joining the council for the first time.</p><p></p><h2>PyCon 2023 registration now open</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YKHF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YKHF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 424w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 848w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 1272w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YKHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png" width="620" height="341.3854351687389" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1126,&quot;resizeWidth&quot;:620,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YKHF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 424w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 848w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 1272w, https://substackcdn.com/image/fetch/$s_!YKHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6557a801-7043-4e45-9422-96e59c82f7bc_1126x620.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://mailchi.mp/python/psf-nov-15542733">https://mailchi.mp/python/psf-nov-15542733</a></figcaption></figure></div><p>Registration for this year's PyCon is officially open! PyCon 2023 will be held April 19 to 27 in Salt Lake City, Utah, as well as online. There are different rates for corporate, individual, and student ticket packages, so be sure to visit the <a href="https://us.pycon.org/2023/attend/information/">PyCon 2023 Registration Information</a> page to learn more.&nbsp;</p><p>2023 marks the 20th anniversary of PyCon, so it's safe to say that this year's celebration will be extra special. If you plan to attend, act quickly, as the first 500 passes are sold at a reduced, early bird rate!</p><p></p><h2>Better performance with Python 3.11</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9dTN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9dTN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 424w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 848w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 1272w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9dTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png" width="570" height="227.45192307692307" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1456,&quot;resizeWidth&quot;:570,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9dTN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 424w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 848w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 1272w, https://substackcdn.com/image/fetch/$s_!9dTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5594057e-2089-4011-b553-6dedd9aa9a50_1600x639.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: twitter.com/pypi</figcaption></figure></div><p>The Python Package Index upgraded to Python 3.11, and they noticed a marked improvement in CPU usage of the web services that power their platform. This increase in performance can be seen in <a href="https://twitter.com/pypi/status/1603089763287826432?cxt=HHwWgICwva3pqL8sAAAA">this PyPI tweet</a>. Significantly increased speed contributes to better, richer software systems as well as decreased energy consumption.</p><p>Python is constantly improving and growing, further solidifying its place as one of the world's top programming languages. Significant improvements like this show just how dedicated the Python team is to making their language consistently better.&nbsp;</p><p>If 3.11 isn't really your speed, the Python release team dropped six simultaneous versions earlier this month.</p><ul><li><p><a href="https://www.python.org/downloads/release/python-3716/">Python 3.7.16</a></p></li><li><p><a href="https://www.python.org/downloads/release/python-3816/">Python 3.8.16</a></p></li><li><p><a href="https://www.python.org/downloads/release/python-3916/">Python 3.9.16</a></p></li><li><p><a href="https://www.python.org/downloads/release/python-3109/">Python 3.10.9</a></p></li><li><p><a href="https://www.python.org/downloads/release/python-3111/">Python 3.11.1</a></p></li><li><p><a href="https://www.python.org/downloads/release/python-3120a3/">Python 3.12.0 alpha 3</a></p></li></ul><p>The <strong>first four</strong> versions are security releases of <strong>legacy versions</strong> of Python. The new patch, 3.11.1 has 495 new commits and is the <strong>first major maintenance release for 3.11</strong>. The 3.12 alpha is an early developer preview for what is to come and represents the <strong>second of seven total alpha releases</strong> <strong>for 3.12</strong>. Stay tuned for more changes to the language!</p><p></p><h2>Black auto formatter wants your feedback</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Xjr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Xjr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 424w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 848w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 1272w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Xjr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png" width="378" height="189" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:368,&quot;width&quot;:736,&quot;resizeWidth&quot;:378,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Xjr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 424w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 848w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 1272w, https://substackcdn.com/image/fetch/$s_!4Xjr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff33cbdc3-d041-45cc-8464-95d46b30e950_736x368.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://pypi.org/project/black/">https://pypi.org/project/black/</a></figcaption></figure></div><p>If you use the Python auto formatter Black, you may want to check out the new proposed changes for their<strong> 2023 stable style</strong>. The first draft is available and the Black team is eager to hear feedback about improving the package. This version is just an alpha, but it represents the vision of what Black's maintainers plan to implement in 2023. There are lots of changes planned, too many to list here, but if you like Black and are interested in being a part of the user research process you can read about the <strong>2023 style draft in <a href="https://ichard26.github.io/blog/2022/12/black-23.1a1/">this blog post</a>.</strong></p><p>You can find the release for <strong>23.1a1 on <a href="https://github.com/psf/black/releases/tag/23.1a1">GitHub</a></strong>.&nbsp;</p><h2>Educative has new Python skill assessments</h2><p>Got a job interview on the horizon? Just looking to test your Python skills? In December, Educative added two skill assessments for:</p><ul><li><p><a href="https://www.educative.io/collection/page/10370001/5378929254989824/6080668136374272/assessment">Python Pandas</a>: Aimed at testing all your Pandas technical skills, from beginner to advanced. The assessment covers everything from sorting and grouping to merging, slicing, and iterative functions.</p></li><li><p><a href="https://www.educative.io/collection/page/10370001/5015853869563904/5096850896191488/assessment">SciKit-learn</a>: Thoroughly covers this key machine learning library by focusing on two main topics: <strong>feature engineering</strong> and <strong>supervised learning</strong>.</p></li></ul><p>You can attempt each assessment three times, and both come with a completion badge that you can add to your social media profiles.</p><p></p><h2>Happy new year, readers!</h2><p>We hope you enjoyed this brief recap of December 2022! But enough looking backwards &#8211; it's 2023, and that means setting our sights on the year ahead. As always, we'll be covering all things Python. We'll be supplying you with some of our favorite learn-to-code resources in the coming months, so be sure to keep reading if you want to fulfill a resolution to improve your Python skills.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Simplify Python coding interview prep by learning these patterns]]></title><description><![CDATA[3 key patterns to understand and solve common algorithmic coding questions]]></description><link>https://www.grokkingpython.com/p/simplify-python-coding-interview</link><guid isPermaLink="false">https://www.grokkingpython.com/p/simplify-python-coding-interview</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 15 Dec 2022 15:01:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FYK3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FYK3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FYK3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FYK3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FYK3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FYK3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f9e6d6c-5613-422c-88ff-2be18db69cef_1024x512.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers, and happy Thursday!</p><p>When was the last time you brushed up on your Python interview skills? In recent editions, we reviewed <a href="https://www.grokkingpython.com/p/grok-the-python-interview-with-confidence">questions about fundamental Python knowledge and concepts</a> to help you get interview-ready but didn&#8217;t cover coding problems. Well, today we&#8217;ll talk about <strong>algorithmic coding questions</strong> that could show up in other parts of your interview process. With thousands of potential questions to account for, preparing for the coding interview can feel like an impossible challenge. Yet with a strategic approach, coding interview prep doesn&#8217;t have to take more than a few weeks. Even if you're not looking to switch jobs, it never hurts to be prepared in case your circumstances change down the road.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Today, we&#8217;ll explore <strong>three key patterns </strong>to help you understand and solve common coding interview questions. By learning to recognize these underlying patterns, you'll be equipped to tackle any problem that comes your way. Let's get started!</p><h2><strong>Sliding Window pattern</strong></h2><p>The <strong>Sliding Window</strong> pattern is a computational method aimed at improving the efficiency of algorithms by reducing the use of nested loops. It's a variation of the Two Pointers pattern but uses window bounds to delimit the scope of the search. This approach can be useful for solving problems that involve searching through large datasets for specific patterns or values.</p><p>The segment, or window size, can be set according to the problem&#8217;s requirements. For example, if we have to find three consecutive integers with the largest sum in an array, we can set the window size to 3. This will allow us to process the data of three elements at a time.</p><h3>Real-world applications</h3><p>Many problems in the real world use the sliding window pattern. Let&#8217;s look at some examples.</p><ul><li><p><strong>Telecommunications:</strong> We can find the maximum number of users connected to a cellular network&#8217;s base station within a given time interval (e.g., every k milliseconds).</p></li><li><p><strong>E-commerce:</strong> Given a dataset of product IDs in the order they were viewed by the user and a list of products that are likely to be similar, we can find how often these products occur together in the dataset.</p></li><li><p><strong>Video streaming:</strong> Given a stream of numbers representing the number of buffering events in a given user session, we can calculate the median number of buffering events in each one-minute interval.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rcW_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rcW_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 424w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 848w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 1272w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rcW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png" width="1027" height="403" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:403,&quot;width&quot;:1027,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;An illustration of using the sliding window technique to find medians&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An illustration of using the sliding window technique to find medians" title="An illustration of using the sliding window technique to find medians" srcset="https://substackcdn.com/image/fetch/$s_!rcW_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 424w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 848w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 1272w, https://substackcdn.com/image/fetch/$s_!rcW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bd25de-9aae-40a7-8a19-5ae8c2e1d0c4_1027x403.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 1: Using the sliding window technique to find medians</figcaption></figure></div><h2><strong>Fast and Slow Pointers pattern</strong></h2><p>The <strong>Fast and Slow</strong> <strong>Pointers </strong>pattern involves using two pointers to traverse an iterable data structure at different speeds. This technique is often used to <strong>identify unique characteristics of directional data structures, such as linked lists or arrays.</strong>&nbsp;</p><p>We can use the two pointers to traverse an array or list in either direction. One of the pointers, the <em>fast</em> pointer, moves at a quicker speed than the other, the<em> slow</em> pointer. Typically, the slow pointer moves forward by a factor of <strong>one</strong> in each step, while the fast pointer moves by a factor of <strong>two</strong>. However, the relative speed of the pointers can be adjusted based on the specific problem being addressed.&nbsp;</p><h3>Real-world applications</h3><p>Let&#8217;s look at examples of where you might use the Fast and Slow Pointers pattern in the real world.&nbsp;</p><ul><li><p><strong>Symlink verification:</strong> A symlink verification utility in an operating system can utilize fast and slow pointers to detect loops or cycles in symbolic links. Symlinks are shortcuts that point to other files or directories, but they can sometimes create loops where one shortcut points to another and so on. To avoid these issues, the utility can use fast and slow pointers, which work similarly to the way they do in a Linked List. The fast pointer moves through the symlinks at a faster rate than the slow pointer, and if they ever meet, it indicates that there is a loop in the symlinks. The utility can then take appropriate action to resolve the issue.</p></li></ul><blockquote></blockquote><ul><li><p><strong>Compiling an object-oriented program:</strong> Fast and Slow Pointers can be used to identify and remove cyclic dependencies in programs that are divided into multiple files. Large applications often have many modules that are separated into different files for easier maintenance. Dependency relationships are established to specify the order in which these files should be compiled. However, sometimes these dependencies can form a cycle, which can cause errors during compilation. In such cases, Fast and Slow Pointers can be used to detect the cycle and break it, allowing the program to be compiled and executed smoothly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DP3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DP3b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 424w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 848w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 1272w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DP3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png" width="1456" height="615" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62329,&quot;alt&quot;:&quot;An illustration of using pointers to check if a linked list contains a cycle&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An illustration of using pointers to check if a linked list contains a cycle" title="An illustration of using pointers to check if a linked list contains a cycle" srcset="https://substackcdn.com/image/fetch/$s_!DP3b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 424w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 848w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 1272w, https://substackcdn.com/image/fetch/$s_!DP3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F135e664f-b34f-46d1-ba31-14eeea9e59a8_1714x724.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 2: Using pointers to check if a linked list contains a cycle</figcaption></figure></div></li></ul><h2><strong>Merge Intervals pattern</strong></h2><p>The <strong>Merge Intervals</strong> pattern mainly deals with <strong>overlapping time intervals</strong>. Each interval is represented by a <strong>start time</strong> and an <strong>end time</strong>. For example, an interval of [10, 20] seconds means that the interval starts at 10 seconds and ends at 20 seconds, including both 10 and the time 20 seconds in the interval.</p><p>This pattern is commonly used to solve scheduling problems. The key to understanding and effectively using the merge interval pattern is <strong>understanding how any two intervals may overlap</strong>.</p><h3>Real-world applications</h3><p>The Merge Intervals pattern can be applied to many situations. Here are a few examples:</p><ul><li><p><strong>Scheduling meetings or appointments:</strong> When scheduling meetings, it is important to make sure that no two meetings overlap. By representing each meeting as an interval and using the Merge Intervals pattern, we can quickly and easily find times that are available for scheduling.</p></li><li><p><strong>Allocating resources:</strong> In many situations, we must allocate people, equipment, materials, or other resources to different tasks. We can determine the optimal allocation of resources to minimize conflicts and overlap by using the Merge Interval pattern.</p></li><li><p><strong>Optimizing transportation routes:</strong> In transportation, we often need to plan routes that minimize the time spent traveling and maximize the amount of cargo that can be delivered. By representing each leg of a journey as an interval, we can find the most efficient route.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2rok!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2rok!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 424w, https://substackcdn.com/image/fetch/$s_!2rok!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 848w, https://substackcdn.com/image/fetch/$s_!2rok!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 1272w, https://substackcdn.com/image/fetch/$s_!2rok!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2rok!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png" width="832" height="317" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:317,&quot;width&quot;:832,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;An illustration of a function that returns the intersection of two interval lists&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An illustration of a function that returns the intersection of two interval lists" title="An illustration of a function that returns the intersection of two interval lists" srcset="https://substackcdn.com/image/fetch/$s_!2rok!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 424w, https://substackcdn.com/image/fetch/$s_!2rok!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 848w, https://substackcdn.com/image/fetch/$s_!2rok!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 1272w, https://substackcdn.com/image/fetch/$s_!2rok!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c42e14-ba44-48aa-b41d-8216e7423726_832x317.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 3: Illustrating a function that returns the intersection of two interval lists</figcaption></figure></div><h2><strong>Take your coding interview prep to the next level</strong></h2><p>That concludes this edition of Grokking Python! We hope you've enjoyed our overview of some common coding interview patterns. Keep in mind that there are <a href="https://www.educative.io/blog/coding-interview-leetcode-patterns?eid=5082902844932096">many more patterns</a> to learn beyond the ones we covered today. </p><p>To continue improving your coding interview skills, we recommend checking out the all-new <a href="https://www.educative.io/courses/grokking-coding-interview-patterns-python">Grokking Coding Interview Patterns in Python</a> course, which covers 21 additional patterns, includes free practice problems to test your knowledge, and features a hands-on, setup-free coding environment.&nbsp;</p><p>Good luck with your coding interview prep!&nbsp;</p><p><em>And as always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for November 2022]]></title><description><![CDATA[OpenAI's DALL&#183;E API beta, Arduino microcontrollers, Weezer, and more!]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-november</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-november</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 01 Dec 2022 15:01:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qu6N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey Grokking Python readers, and happy Thursday! Without further ado, let's jump right in.</p><p></p><h2>DALL&#183;E API is now available as a public API for Python</h2><p>Python developers can now build apps with OpenAI's very own DALL&#183;E API! <strong>The API is officially in public beta</strong>. DALL&#183;E opens the door for state-of-the-art features like image generation from natural language and automated image content moderation.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qu6N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qu6N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 424w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 848w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 1272w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qu6N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png" width="480" height="446.99551569506724" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1246,&quot;width&quot;:1338,&quot;resizeWidth&quot;:480,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qu6N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 424w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 848w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 1272w, https://substackcdn.com/image/fetch/$s_!Qu6N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7382a9d0-7bbc-4749-9354-d05afcd69248_1338x1246.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://openai.com/blog/dall-e-api-now-available-in-public-beta/">openai.com/blog</a></figcaption></figure></div><p>If you plan on integrating the API for users to request images, it can automatically filter requests for hate symbols or gore. While these features are only available in a natural language filtering context, <strong>they pose a promising idea for the future of automated image moderation.</strong></p><p><strong>Automated content moderation is a big deal</strong>. Many human content moderators are <a href="https://crowd.cs.vt.edu/wp-content/uploads/2021/02/CHI21_final__The_Psychological_Well_Being_of_Content_Moderators-2.pdf">at risk of developing mental health problems</a>, and the introduction of highly advanced machine learning APIs can potentially help soften the load.</p><p>OpenAI has a well-known machine learning API enabling all kinds of advanced natural language processing and even code autocompletion. The official announcement of the DALL&#183;E API public beta can be found on <a href="https://openai.com/blog/dall-e-api-now-available-in-public-beta/">the OpenAI blog</a>. Plus, read more about the full functionality of the DALL&#183;E powered API in the newly expanded official <a href="https://beta.openai.com/docs/guides/images">OpenAI documentation</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Advanced malware detection due to unique attacks on PyPI</h2><p>Cyber security companies Phylum and Check Point reported on novel ways of hiding malicious code on the Python Package Index. It appears that malicious code stored in packages date back to early October, but that the effort didn't kick into high gear until late October.&nbsp;</p><p>One of the malwares delivered was "W4SP Stealer." It targets sensitive or interesting files on the victim's computer like: Discord accounts, passwords, crypto wallets, and credit card information. The data then gets sent back to the attacker via a hardcoded Discord webhook address.&nbsp;</p><p>Check Point found malicious packages with non-trivial code that downloaded stenography modules containing malware. It was only when messages hidden in images were de-obfuscated that base64 Python code for installing malware was found.</p><p>These breaches demonstrate a new type of organized malware attacks. Those who are most vulnerable are professionals that work from home; especially those who use a work machine for side projects. <strong>These attacks serve as yet another reminder to stay vigilant</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GX5r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GX5r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 424w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 848w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 1272w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GX5r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png" width="1456" height="580" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GX5r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 424w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 848w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 1272w, https://substackcdn.com/image/fetch/$s_!GX5r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1153fe9c-eb55-4bfe-a0a3-1b0a3f0563ac_1600x637.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">One of the malicious packages (Source: <a href="https://research.checkpoint.com/2022/check-point-cloudguard-spectral-exposes-new-obfuscation-techniques-for-malicious-packages-on-pypi/">research.checkpoint.com</a>)</figcaption></figure></div><p><strong>Both Check Point and Phylum found some slightly different approaches to malware</strong>. Read more about the research on these attacks here:</p><ul><li><p><strong>Phylum:</strong> <a href="https://blog.phylum.io/phylum-discovers-dozens-more-pypi-packages-attempting-to-deliver-w4sp-stealer-in-ongoing-supply-chain-attack">Phylum Discovers Dozens More PyPI Packages Attempting to Deliver W4SP Stealer in Ongoing Supply-Chain Attack</a></p></li><li><p><strong>Check Point:</strong> <a href="https://research.checkpoint.com/2022/check-point-cloudguard-spectral-exposes-new-obfuscation-techniques-for-malicious-packages-on-pypi/">Check Point CloudGuard Spectral exposes new obfuscation techniques for malicious packages on PyPI</a></p></li></ul><p></p><h2>MicroPython is now a part of the Arduino ecosystem!</h2><p>Microcontroller kit company <a href="https://blog.arduino.cc/2022/11/10/micropython-officially-becomes-part-of-the-arduino-ecosystem/">Arduino now supports Python</a>, or rather, MicroPython, the version of Python that runs on microcontrollers. Alongside this neat added functionality, the Arduino and MicroPython teams have collaborated on a totally new IDE built for <strong>any microcontroller with a serial REPL interface.</strong> The IDE is called <strong>Arduino Lab for MicroPython</strong>. It's a lightweight editor designed for simple interactions between computer and board like selecting a port, loading scripts, using the REPL shell, etc.</p><p>If you're unfamiliar with all the fun that can be had with Arduino boards, check out their own <a href="https://create.arduino.cc/projecthub">community project hub</a>. Hopefully you can find some inspiration for a fun side project or two, like this clever remote control light switch.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3b5Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3b5Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 424w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 848w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3b5Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png" width="440" height="331.36551724137934" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/a41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1450,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3b5Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 424w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 848w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!3b5Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41a7b0f-76b5-423f-8c63-c5665d6e87a7_1450x1092.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: user <a href="https://www.instructables.com/Remote-Control-Light-Switch-1/">@alanmerritt on Instructables.com</a></figcaption></figure></div><p>More info on how to set up the IDE can be found in the <a href="https://docs.arduino.cc/learn/programming/arduino-and-python">official Arduino documentation on Arduino Lab for MicroPython</a>.</p><p></p><h2>The 2023 HackerRank Developer Skills Report is out</h2><p>HackerRank uses its data to assess in-demand developer skills and forecast an outlook for the tech landscape each year. Despite the huge swath of layoffs cutting through the tech industry, the hiring company has some good news.&nbsp;</p><p>It is still a great time to get into the software development space as demand is predicted to grow for the foreseeable future.&nbsp;It seems like everyone is either learning to code or saying they should learn how to code these days, and that remains true.</p><p>Check out <a href="https://www.hackerrank.com/research/developer-skills/2023">HackerRank's full 2023 report</a>.</p><p>HackerRank claims that the languages that saw growth in 2021 and 2022 will continue to grow. The most notable are Python, Java, and SQL. Additionally, <strong>REST API skills grew in demand by a whopping 179%</strong>. Remembering that DALL&#183;E API we mentioned earlier?</p><p>Well, you're in luck, because Educative recently launched <strong>20+ new API courses</strong> <strong>all exclusively in Python</strong>. It's hard to imagine a better time than right now to try your hand at some new API integrations. If you're knee deep in building a web application, or brand new to APIs in general, we've got you covered with a blog on some of <a href="https://www.educative.io/blog/great-web-apis-for-web-development?eid=5082902844932096">our favorite APIs to use in web development</a>.</p><p></p><h2>Guido Van Rossum talks to Rivers Cuomo</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t-vH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t-vH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 424w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 848w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 1272w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t-vH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png" width="208" height="209.03482587064676" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bc888a28-f5a6-4377-b678-e940226f9bae_402x404.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:404,&quot;width&quot;:402,&quot;resizeWidth&quot;:208,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t-vH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 424w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 848w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 1272w, https://substackcdn.com/image/fetch/$s_!t-vH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc888a28-f5a6-4377-b678-e940226f9bae_402x404.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://www.singforscience.org/">singforscience.org</a></figcaption></figure></div><p>In much more niche news that was too strange to pass up, the creator of Python, Guido Van Rossum, is teaming up with the Weezer frontman and rock icon Rivers Cuomo for a meeting of the minds. <strong>The two pair up on a podcast called <a href="https://www.singforscience.org/">Sing for Science</a>.</strong> The premise is that two accomplished professionals (a musician and a scientist) meet in the middle to talk art and science together.</p><p>In this episode, Rossum and Cuomo dive deep into <strong>the history of Python and coding, but also songwriting</strong>, specifically the making of Weezer's "The Sweater Song." The episode is titled: <a href="https://www.singforscience.org/episodes/rivers-cuomo-guido-van-rossum">Come Undone: Revolutionizing the Digital Age with Open Source Coding</a>.</p><p></p><h2>Educative unveils new Python courses</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_zbd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_zbd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 424w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 848w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 1272w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_zbd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png" width="206" height="206.7923076923077" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:522,&quot;width&quot;:520,&quot;resizeWidth&quot;:206,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_zbd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 424w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 848w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 1272w, https://substackcdn.com/image/fetch/$s_!_zbd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F67fa77a8-ce2e-45af-b6cc-926e0d7b5c41_520x522.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>To top it all off, we'd like to announce a brand new Python skill path on Educative. <strong>Pythonic Programming Tips for Software Engineers</strong>, is centered around how to write "Pythonic code." It outlines how to create efficient and maintainable code, designed specifically for Python in six parts.</p><ul><li><p><strong>Documentation</strong></p></li><li><p><strong>General tips</strong></p></li><li><p><strong>Data types and data structures</strong></p></li><li><p><strong>Functions</strong></p></li><li><p><strong>Performance&nbsp;</strong></p></li><li><p><strong>Safety</strong></p></li></ul><p>This course is especially useful to those who already know Python. Each section features tips and tricks that are valuable even to experienced Python developers. By the end of this path you'll know exactly how to build efficient, performative, and scalable code in a way that <strong>uses Python to its fullest potential</strong>.&nbsp;</p><p>Get more out of your favorite language with this path: <a href="https://www.educative.io/courses/pythonic-programming-tips-software-engineers?eid=5082902844932096">Pythonic Programming Tips for Software Engineers</a>.</p><p>We hope you enjoyed this month's recap. Watch this space for more exciting news to come!</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Grok the Python interview with confidence: 15 questions and answers]]></title><description><![CDATA[Review essential Python concepts and show off your understanding at your next interview!]]></description><link>https://www.grokkingpython.com/p/grok-the-python-interview-with-confidence</link><guid isPermaLink="false">https://www.grokkingpython.com/p/grok-the-python-interview-with-confidence</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 10 Nov 2022 15:00:59 GMT</pubDate><enclosure url="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/222aadc3-7cc3-483f-acd6-15296767199b_1017x711.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey Grokking Python readers, and happy Thursday!</p><p>When was the last time you brushed up on your core Python knowledge? You know, the details you probably learned when you were starting to pick up the language, but don't typically use in your day-to-day coding? It may seem like a chore, but this kind of review can pay off when you've got an interview looming. Even if you're content in your job, it never hurts to be prepared in case your circumstances change.&nbsp;</p><p>Today, we're picking up where we left off in October and talking more about <a href="https://www.grokkingpython.com/p/10-questions-and-answers-to-help">Python interview prep</a>. We'll share 15 additional questions, along with concise answers. Like last time, these will not be coding problems, but questions about fundamental knowledge and concepts that will show off your understanding of Python.</p><p>Let's begin!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_m2L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_m2L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_m2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_m2L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!_m2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcb5e177-3137-445a-bf6d-2f1300340fb7_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Common Python interview questions</h2><p>Your technical interview will almost certainly include live coding exercises. But before you start coding, you'll likely face technical questions about the language itself. Review the following 15 questions to build up your familiarity and comfort with Python.&nbsp;</p><h3>1. What is a Python decorator?</h3><p>A Python decorator is a language feature that allows developers to "wrap" or "decorate" functions and methods to modify their behavior. Decorators are typically used to add functionality to existing functions or methods but can also create new ones.&nbsp;</p><p>Decorators use a function or method as an argument and then return a modified version of that function or method.&nbsp;</p><h3>2. What is <code>__init__</code> in Python?</h3><p><code>__init__</code> is a constructor method that allocates memory and runs automatically whenever a class creates an object or instance. It is used exclusively within classes to let the class initialize the created object's attributes.&nbsp;&nbsp;</p><h3>3. What is a lambda function in Python?</h3><p>A <strong><a href="https://www.educative.io/blog/python-lambda-functions-tutorial?eid=5082902844932096">lambda function</a></strong> works like any other Python function but anonymously (meaning it has no name) and is contained in a single line of code. Lambda functions can accept <strong>multiple parameters</strong> but can only accept one expression.</p><p>Syntax of a lambda function:&nbsp;</p><p><code>lambda parameter(s): expression</code></p><blockquote><p>The function evaluates the expression and <strong>returns</strong> its results.</p></blockquote><p>Example of a lambda function with a <strong>single parameter</strong>:</p><p><code>x = lambda y : y + 4</code></p><blockquote><p>The function takes a single parameter <code>y</code> and returns <code>y+4</code>.</p></blockquote><p>Example of a lambda function with <strong>multiple parameters</strong>:</p><p><code>x = lambda y, z : y * z</code></p><blockquote><p>Here, the function takes two parameters <code>y</code> and <code>z</code>. It returns their product.</p></blockquote><h3>4. What's the difference between an iterable and an iterator in Python?</h3><p>In Python, the iterator is implemented via two methods: <code>_iter_</code> and <code>_next_</code>.</p><p>An <strong>iterable</strong> is a container object that contains other objects known as "items". For example, a list is iterable because lists contain other list items as well as other types of objects like numbers and strings. An iterable will have its <code>_iter_</code> method defined.</p><p>An <strong>iterator</strong> is a way to iterate over the items in a container, such as a list of integers. Each item in the list can be iterated over one at a time using the iterator function. An iterator will have <strong>both</strong> <code>_iter_</code> and <code>_next_</code> defined, where <code>_iter_</code> returns the iterator object, and <code>_next_</code> returns the next element in the iteration.</p><p>Iterables are an important concept to master because they're often used to loop over the contents of a container object.&nbsp;</p><blockquote><p><strong>Reflect</strong>: What other iterables can you name?&nbsp;</p></blockquote><h3>5. What is a Python generator?</h3><p>Python generators are functions that yield a series of values. When you call a generator function, it returns a special iterator that can be used to access the generated items. So, you can think of a generator as a function for building iterators.&nbsp;</p><p>The biggest benefit of a generator is that it can iterate over large datasets. When working with a dataset that would otherwise take up your computer's memory, a generator can break up that data set into chunks and return it piece by piece.&nbsp;</p><blockquote><p><strong>Note</strong>: Generators are sometimes referred to as co-routines.</p></blockquote><h3>6. What is the difference between <code>==</code> and <code>is</code> in Python?</h3><p><strong>Equality testing</strong> uses the values of objects to determine whether they are equal.</p><p><strong>Identity testing</strong> uses the memory location of the objects to determine if they are equal.&nbsp;</p><ul><li><p><code>==</code> checks if two values are the same (i.e., tests for equality)</p></li><li><p><code>is</code> checks for identity, which checks to see if a string is the same as another string while taking into account whitespaces and other differences</p></li></ul><p>For example, two lists can be <strong>equal </strong>if they have the same contents, but they aren't necessarily <strong>identical</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kmYD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kmYD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kmYD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png" width="316" height="316" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/36afbd06-f25d-4139-b681-d64cf090f137_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:316,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kmYD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!kmYD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F36afbd06-f25d-4139-b681-d64cf090f137_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>7. What is the difference between <code>str()</code> and <code>repr()</code> in Python?</h3><p>Both <code>str()</code> and <code>repr()</code> are used to return a string representation of an object.&nbsp;</p><ul><li><p><code>str()</code> prioritizes readability for humans. The string representation of an object's raw data may look different from its actual raw data. It is generally used for creating output that humans will read</p></li><li><p><code>repr()</code> prioritizes readability for machines. The string representation of an object's raw data is represented as is. Generally used for debugging and development.</p></li></ul><h3>8. What is GIL?</h3><p>A <strong>Global Interpreter Lock</strong>, or GIL, is a mechanism used in computer programming to ensure that only one thread can access the Python interpreter at any time. This lock allows Python programs to be written in a way that is safe from race conditions, which can occur when multiple threads try to access the same data simultaneously.</p><h3>9. What is the difference between a shallow copy and a deep copy?</h3><p>A <strong>shallow copy</strong> returns a reference to the original object and makes no additional copies. For example, making a shallow copy of a list object creates a new list that contains references to all the items of the source list.</p><p>A <strong>deep copy</strong> copies the items in the list and returns a reference to the newly created copies.</p><h3>10. What is the difference between serialization and pickling?</h3><p><strong>Serialization</strong> refers to a feature where an object is transformed into a format to be stored, which can then be deserialized to obtain the original object.</p><p>Serialization in Python is made possible through the process of pickling. <strong>Pickling</strong> converts and compresses the data of a Python object to a sequence of bytes that can be safely stored in a file while preventing accidental data corruption by system crashes.</p><p>Pickling also makes data transfer between systems that use different file formats possible.&nbsp;</p><p>The function for pickling is <code>pickle.dump()</code>.</p><h3>11. What do the <code>split()</code> and <code>join()</code> functions do?</h3><ul><li><p><code>split()</code> is used to split a string into a list of strings</p></li><li><p><code>join()</code> joins a list of strings to return a single string</p></li></ul><h3>12. What is the difference between <code>*args</code> and <code>**kwargs</code>?</h3><ul><li><p><code>*args</code> is short for arguments</p></li><li><p><code>**kwargs</code> is short for keyword arguments</p></li></ul><p>Both <code>*args</code> and <code>**kwargs</code> pass arguments to a function. However, <code>**kwargs</code> are used when you want to specify keyword arguments in a function call, whereas <code>*args</code> are used when you just want to pass a positional argument to a function.</p><h3>13. What is a Python docstring?</h3><p>A Python docstring is a string literal used to document a Python module, class, function, or method. It occurs as the first statement in a module, function, class, or method definition.&nbsp;</p><ul><li><p><strong>Modules</strong>: Documents the contents of a module (variables, classes, functions, etc.)</p></li><li><p><strong>Classes</strong>: Documents the class attributes and methods</p></li><li><p><strong>Functions</strong>: Documents the parameters, return values, and exceptions of a function</p></li><li><p><strong>Methods</strong>: Documents the method parameters and return values</p></li></ul><p>It's a <a href="https://www.educative.io/blog/python-pep8-tutorial?eid=5082902844932096">best practice</a> to include docstrings in your code because it helps other developers quickly read and understand what your code does. Although it isn't a strict requirement, it does reflect well to have a habit of documenting your code.</p><h3>14. What is the difference between <code>range()</code> and <code>xrange()</code>?</h3><ul><li><p><code>range()</code> returns a list of numbers&nbsp;</p></li><li><p><code>xrange()</code> returns an iterator that generates numbers on demand using a technique known as yielding</p></li></ul><p><code>xrange()</code> is generally used when working with large numbers, as it doesn't store the entire list in memory.</p><h3>15. What makes Python an interpreted language?</h3><p>Python doesn't need to be compiled before it runs. Instead, it runs through an <a href="https://www.educative.io/blog/compiled-vs-interpreted-language?eid=5082902844932096">interpreter</a>. Interpreters run your code line by line, whereas compilers run the code all at once, so interpreted languages are generally slower than compiled ones. However, code written in interpreted languages is easier to debug and portable across different platforms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iMQz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iMQz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iMQz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png" width="312" height="312" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iMQz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!iMQz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01762558-c285-4b4f-9d94-2b4ee2b828ac_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>25 more interview questions to review</h2><p>Other Python questions could certainly come up in your interview. Here are 25 more to review.</p><ol><li><p>What are local and global variables?</p></li><li><p>How are <code>continue</code>, <code>break</code>, and <code>pass</code> statements used in loops?</p></li><li><p>What is a negative index in Python?</p></li><li><p>What functions can be used to add elements to a Python list?</p></li><li><p>What is the Python <code>zip()</code> function?</p></li><li><p>How do you import and interact with an OS in Python?</p></li><li><p>Which module is used to work with regular expressions in Python?</p></li><li><p>What is the <code>doctest</code> module used for?</p></li><li><p>What is the difference between <code>_iter_</code> and <code>_next_</code>?</p></li><li><p>What is a magic method?</p></li><li><p>What is the <code>yield</code> statement used for?</p></li><li><p>How do you define private variables in Python?</p></li><li><p>What Python modules have you used?</p></li><li><p>How does Python implement garbage collection?</p></li><li><p>What is reference counting in Python?</p></li><li><p>What is packing and unpacking in Python used for?&nbsp;</p></li><li><p>What are some things you like and dislike about using Python?</p></li><li><p>What are some common Python libraries?</p></li><li><p>What is unpickling?</p></li><li><p>Can Python be used for functional programming?&nbsp;</p></li><li><p>What are negative indexes?</p></li><li><p>What is the difference between <code>import</code> and <code>from</code>?</p></li><li><p>How do you access values in a dictionary?</p></li><li><p>What is the difference between a public and a private member?</p></li><li><p>What is memoization?</p></li></ol><h2>Take your interview prep to the next level</h2><p>Upcoming interviews can be stressful. Being prepared helps relieve the pressure. If you know what types of questions you&#8217;ll likely face, you can practice answering them, familiarizing yourself with their related concepts, and connecting them to your personal experience.</p><p>The 25 questions we covered today and in our <a href="https://www.grokkingpython.com/p/10-questions-and-answers-to-help">previous interview-prep edition</a> are some of the most common Python interview questions employers ask. You likely won't memorize specific answers to these questions to regurgitate in your interview. But having a general understanding of the topics they cover and being able to speak intelligently about them will help you make a strong impression.</p><p>Your next step should be to incorporate coding problems into your interview preparations. But don't try drilling endless practice questions. Instead, simplify your interview prep by unlocking the <a href="https://www.educative.io/blog/coding-interview-leetcode-patterns?eid=5082902844932096">patterns behind the industry&#8217;s most common questions</a>. We'll be writing about coding interview patterns in a December edition of Grokking Python, but to get started now, check out Educative's all-new course, <strong><a href="https://www.educative.io/courses/grokking-coding-interview-patterns-python?utm_campaign=coding-interview&amp;utm_source=substack&amp;utm_medium=email&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Grokking Coding Interview Patterns in Python</a></strong>. Covering 24 patterns, this course was developed by FAANG hiring managers to prepare you for the typical rounds of interviews at major tech companies.</p><p>With enough preparation, you'll be able to face your interview confidently and get one step closer to your dream job.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for October 2022]]></title><description><![CDATA[Python 3.11, Anaconda Distribution 2022.10, JupyterCon 2023, and more!]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-october-2022</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-october-2022</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 27 Oct 2022 14:00:11 GMT</pubDate><enclosure url="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ea1e7bf-4874-4bb9-8d88-422897d2dfdb_1188x601.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Grokking Python readers, and happy Thursday! Without further ado, let's get started.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9c6b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9c6b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 424w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 848w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 1272w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9c6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png" width="320" height="316" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:316,&quot;width&quot;:320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9c6b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 424w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 848w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 1272w, https://substackcdn.com/image/fetch/$s_!9c6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbf2909-5ff2-46d8-aa0c-c8b6e590d9c3_320x316.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Img src: <a href="https://blog.python.org/2022/10/python-3110-is-now-available.html">Python Insider</a></figcaption></figure></div><h1>Python 3.11 is out!</h1><p>This is one of the most exciting Python releases in recent memory. <a href="https://www.python.org/downloads/release/python-3110/">Python 3.11</a> introduces some new features that make it even easier to create robust, reliable applications. Here are a few of the improvements you'll find in Python 3.11:</p><ul><li><p><strong>Better performance</strong>: Python 3.11 is significantly faster than Python 3.10, by at least 10-60%. On average, it's 25% faster thanks to improved startup times and communication with C.</p></li><li><p><strong>Improved error handling</strong>: Python 3.11's error messages now pinpoint the specific location of the error in tracebacks!&nbsp; This makes it much easier to find and fix bugs in your code.&nbsp;</p></li><li><p><strong>TOML support</strong>: The tomllib module was added to the Python Standard Library in Python 3.11! TOML (Tom's Obvious Minimal Language) is a popular configuration file format that has been growing in popularity and is the format of choice for Python packaging.&nbsp;</p></li></ul><p>You can check out the PEPs for some of the major new features and changes below:&nbsp;</p><p><strong>General changes</strong></p><ul><li><p><a href="https://www.python.org/dev/peps/pep-0657/">PEP 657</a> &#8211; Include Fine-Grained Error Locations in Tracebacks</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0654/">PEP 654</a> &#8211; Exception Groups and except*</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0680/">PEP 680</a> &#8211; tomllib: Support for Parsing TOML in the Standard Library</p></li></ul><p><strong>Typing and typing language changes</strong></p><ul><li><p><a href="https://www.python.org/dev/peps/pep-0646/">PEP 646</a> &#8211; Variadic Generics</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0655/">PEP 655</a> &#8211; Marking individual TypedDict items as required or potentially-missing</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0673/">PEP 673</a> &#8211; Self Type</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0675/">PEP 675</a> &#8211; Arbitrary Literal String Type</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0681/">PEP 681</a> &#8211; Data Class Transforms</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>Anaconda Distribution 2022.10 released</h1><p>Anaconda is the leading Python distribution and data science platform in Python. It's used by data scientists, engineers, and researchers to power some of the largest Python deployments in the world.</p><p>The latest release of Anaconda Distribution, 2022.10, introduces some exciting new features.</p><p>Here are some of the highlights:</p><ul><li><p>Conda has been updated to v22.9.0</p></li><li><p>Anaconda Navigator has been updated to v2.3.1</p></li><li><p>The 2022.10 installer uses python-3.9</p></li><li><p>First release to provide a python-3.10 variant for anaconda metapackages</p></li><li><p>This is the last release that will provide a python-3.7 variant for anaconda metapackages</p></li><li><p>Qt support for macOS M1 (osx-arm64), enabling full use of GUI applications like Anaconda Navigator and Spyder</p></li></ul><p>If you want to learn more about the new features and performance improvements in Anaconda Distribution 2022.10, head on over to the<a href="https://docs.anaconda.com/anaconda/reference/release-notes/#release-notes"> official release notes</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!agfZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!agfZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 424w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 848w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 1272w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!agfZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png" width="679" height="290" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:679,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!agfZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 424w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 848w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 1272w, https://substackcdn.com/image/fetch/$s_!agfZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc64cc0b-f7a1-4ad7-a062-4906390bc621_679x290.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Image source: <a href="https://www.jupytercon.com/">JupyterCon</a></figcaption></figure></div><h1>Jupyter announces dates and location for JupyterCon 2023</h1><p>JupyterCon 2023 will be held May 10 to 12 (Thursday to Friday) in, Paris, France, at the largest science museum in Europe, the <a href="https://www.cite-sciences.fr/en/home">Cit&#233; des Sciences et de l&#8217;Industrie</a>.</p><p><a href="https://www.jupytercon.com/">JupyterCon</a> is an annual conference for the <a href="http://jupyter.org/">Jupyter</a> community, bringing together users and developers of the project's open-source tools from around the world. The conference provides a forum for networking, collaboration, and knowledge sharing on all things Jupyter. JupyterCon celebrates the distributed nature of their community by enhancing year-long remote collaborations with in-person interactions over the span of just a few days. At JupyterCon, attendees will have plenty of chances to learn from each other and gain new professional skills through tutorials, talks, social events, and more.</p><p>If you're a fan of Jupyter, now is a good time to sign up for those early email updates on conference planning and news.</p><h1>New Python course now available on Educative&nbsp;</h1><p>As the final note for today, here's a short and sweet new course: <a href="https://www.educative.io/courses/hugging-face-machine-learning-pipelines-python">Applying Hugging Face Machine Learning Pipelines in Python</a>.</p><p>You may have heard of <a href="https://huggingface.co/">Hugging Face</a> before. They're a company (and community) dedicated to democratizing artificial intelligence resources and tools through open source and open science. Hugging Face provides a platform with thousands of machine learning models and is used at companies like Google, Microsoft, Meta, and more!&nbsp;</p><p>This course is designed for anyone who wants to use the latest ML models, particularly NLP and computer vision models, for inference. It's perfect for a broad range of users, including industry engineers, software developers, data scientists, and machine learning researchers. You can use it to perform direct inference or as part of another machine learning pipeline.</p><p>The goal of this course is to provide you with:&nbsp;</p><ul><li><p>A familiarity with Hugging Face and their library of machine-learning models</p></li><li><p>A working knowledge of Hugging Face&#8217;s pipeline APIs and their applications</p></li><li><p>The ability to apply Hugging Face models to generate and read text using natural language processing</p></li><li><p>The ability to apply Hugging Face models to computer vision tasks</p></li><li><p>Hands-on experience implementing Hugging Face models using Python and PyTorch</p></li></ul><p>So, if you're looking to familiarize yourself with the popular Hugging Face platform, then this course is a great introduction!&nbsp;</p><p>That's all for this month! We hope you have a great autumn and stay tuned in for more exciting news in the Python world.&nbsp;</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10 questions and answers to help you ace the Python interview]]></title><description><![CDATA[What to expect from interviewers, plus fundamental concepts you need to know]]></description><link>https://www.grokkingpython.com/p/10-questions-and-answers-to-help</link><guid isPermaLink="false">https://www.grokkingpython.com/p/10-questions-and-answers-to-help</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 13 Oct 2022 14:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pamv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey Grokking Python readers, and happy Thursday!</p><p>In September, we dove deeply into <strong>careers </strong>and how you can become the Python developer you aspire to be. We devoted three editions to:</p><ul><li><p><a href="https://www.grokkingpython.com/p/how-to-start-getting-the-python-career">Different Python career paths and starting your career journey</a></p></li><li><p><a href="https://www.grokkingpython.com/p/start-your-python-job-search-with">Preparation for a job search</a></p></li><li><p><a href="https://www.grokkingpython.com/p/preparing-for-python-career-success">Requirements for becoming a Python professional</a></p></li></ul><p>Today, we'll continue this theme and focus on an essential ingredient for landing your dream job: <strong>succeeding at interviews!</strong> Because of Python's popularity, many hiring managers and recruiters ask candidates about their Python knowledge during job interviews, even if the role is not Python-specific. If you want to be a Python developer, meanwhile, you can be sure you'll hear questions specifically about it!&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pamv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pamv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 424w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 848w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 1272w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pamv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png" width="564" height="564" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:564,&quot;bytes&quot;:269684,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pamv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 424w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 848w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 1272w, https://substackcdn.com/image/fetch/$s_!Pamv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf0c833-8edd-450e-ba5f-914e46d6aea9_3041x3042.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, it can be challenging to prepare for an interview when you're unfamiliar with the types of questions that come up or how to answer them. So, in this edition, we'll start by covering the fundamental knowledge and concepts you need. We'll then run through 10 general Python questions you might encounter, along with brief answers covering essential points. (We won't be covering coding problems.)</p><p>Let's get to it!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Key areas of knowledge</h2><p>During a technical interview for a Python developer position, you'll likely be asked a short series of technical questions to test your familiarity and comfort with the language, followed by some live coding exercises.&nbsp;</p><p>We'll focus on the first portion of the Python developer interview to help you get comfortable articulating abstract concepts and connecting them to <a href="https://www.educative.io/blog/python-tutorial-total-beginner?eid=5082902844932096">your projects</a>. You may be expected to explain and compare technical concepts, weigh the advantages and disadvantages of different approaches, or provide insight into your personal preferences as a developer.&nbsp;</p><p>Here are some key areas of Python that you'll need to understand for technical interviews:</p><ul><li><p><strong>Fundamentals </strong>like syntax, variables, data types, and control flow (if/else)</p></li><li><p><strong>Data structures</strong> like lists, linked lists, stacks, queues, trees, tuples, sets, dictionaries, etc.</p></li><li><p><strong>Implementing <a href="https://www.educative.io/blog/python-algorithms-coding-interview?eid=5082902844932096">algorithms</a> in Python </strong>for searching, sorting, graph traversal, and more.</p><ul><li><p><strong>Algorithm design techniques</strong> such as brute-force, greedy, dynamic programming, divide-and-conquer, etc.</p></li></ul></li><li><p><strong>Object-oriented programming</strong> concepts like classes, objects, inheritance, polymorphism, encapsulation, and abstraction</p></li><li><p><strong>Recursion </strong>and <strong>iteration </strong>for efficient problem solving</p></li><li><p><strong>Exception handling</strong> for errors</p></li></ul><p>Other topics may come up in your technical interview as well. You may end up discussing modules, packages, or libraries like NumPy and SciPy. Some advanced topics include <strong><a href="https://www.educative.io/blog/python-concurrency-making-sense-of-asyncio?eid=5082902844932096">concurrency</a>, parallel processing, <a href="https://www.educative.io/blog/distributed-system-design-patterns?eid=5082902844932096">system design patterns</a></strong>, and Python tools used for profile or performance analysis.&nbsp;&nbsp;</p><h2>Python interview questions</h2><h3>1. What are the main features of Python?</h3><ul><li><p><strong>Ease of use</strong>: Python is very readable, even for beginners. It is often said that Python code looks like English, making programming much easier.&nbsp;</p></li><li><p><strong>Open source</strong>: The Python programming language is freely available to everyone, so there are no licensing risks. You can use it to develop your applications without getting permission from anyone.&nbsp;</p></li><li><p><strong>Cross-platform</strong>: Python supports many platforms, including Windows, Linux, and Mac OS X, and this high portability makes it suitable for use in a wide variety of different environments. It can also compile and run on a wide variety of different processor architectures.</p></li><li><p><strong>Debugging support</strong>: Python comes with an integrated debugger that allows you to track the execution of your program, identify and resolve errors quickly, and troubleshoot issues as they arise. Many Python programmers also use third-party debugging tools like PyCharm, which provides a graphical user interface for interacting with your programs and making changes.</p></li><li><p><strong>Extensible</strong>: Python code can be written into C or C++ and then compiled into those languages.</p></li><li><p><strong>High-level</strong>: Python is very high-level compared to most programming languages, so you don't have to spend a lot of time learning a lot of technical jargon before you start using it. This makes it a great option for people just starting to program.</p></li><li><p><strong>Object-oriented paradigm</strong>: Python supports the object-oriented programming paradigm, which means that you can develop a wide range of applications using objects to represent data and manipulate that data in the form of lists, dictionaries, tuples, and other data structures.</p></li><li><p><strong>GUI programming support</strong>: Python modules like Tkinter enable you to create graphical user interfaces for your programs using the popular Tk graphical toolkit. These interfaces allow the user to interact with your application using mouse gestures and typing on the keyboard.</p></li><li><p><strong>Multi-purpose language: </strong>Python is used for app development, machine/deep learning AI, data science, and more.</p></li></ul><h3>2. What are the benefits of using Python?</h3><ul><li><p><strong>Simplicity</strong>: Python is easy to learn and use, and its simple syntax makes it easy to read and interpret. This means that it's much easier to write <strong>high-quality code</strong> in Python than in other languages.</p></li><li><p><strong>Speed</strong>: Python is very lightweight compared to many other languages, which makes it much faster to execute on computers with limited resources. It's not as fast as some low-level languages like C or C++, but it's fast enough for most applications.</p></li><li><p><strong>Dynamically typed</strong>: Python allows you to perform type inference when a variable is declared without specifying the data type, so there's no need to define the type of each variable explicitly.</p></li><li><p><strong>Easy debugging</strong>: Python has several built-in functions that facilitate debugging your code, including the trace function, which displays information about the execution of a program and allows you to display variables at certain points in execution, and the debug module, which provides a debugger that you can use to display the values of variables at runtime and examine the state of your program at specific points in its execution.</p></li><li><p><strong>Use by tech giants</strong>: Knowing Python will put you in the company of engineers at companies like Google, Meta, and more.</p></li></ul><h3>3. What are Python's built-in data types?</h3><p>Assigning a value to a variable in Python assigns a data type at the same time. Eight data types are built into Python by default: numeric, text, boolean, sequence, mapping, set, binary, and none.</p><ul><li><p>Numeric: <code>int</code>, <code>float</code>, <code>complex</code></p></li><li><p>Text: <code>str</code></p></li><li><p>Boolean: <code>bool</code></p></li><li><p>Sequence: <code>list</code>, <code>tuple</code>, <code>range</code></p></li><li><p>Mapping: <code>dict</code></p></li><li><p>Set: <code>set</code>, <code>frozenset</code></p></li><li><p>Binary: bytes, <code>bytearray</code>, <code>memoryview</code></p></li><li><p>None: <code>NoneType</code></p></li></ul><p>You can find the type of <strong>any object</strong> by using the <code>type()</code> function.</p><p><code># numeric types<br>a = 123<br>b = 4.49<br>c = 64j<br><br># text types<br>d = "Sphinx of black quartz, judge my vow."<br><br># booleans<br>e = True<br>f = False<br><br># sequence types<br>g = ["red", "yellow", "blue"]<br>h = ("Mario", "Luigi", "Alexander Hamilton")<br>i = range(10)<br><br># mapping types<br>j = {"Favorite food": "Coffee Jelly", "Power Level": 9001}<br><br># sets<br>k = {"Dr. Frankenstein", "Dr. Jekyll", "Dr. Leonard McCoy" }<br>l = frozenset({red, yellow, blue})<br><br># binary types<br>m = b"Archipelago"<br>n = bytearray(7)<br>o = memoryview(bytes(8))<br><br># None type<br>p = None<br><br># try using the type function with the variables to see what data type is returned<br>print(type(a))&nbsp;</code></p><h3>4. What is a class in Python?</h3><p>Classes are code templates used to create objects using the class constructor. Objects contain data and functions that represent the properties of that object.</p><p>For example, you could have a class that represents a cat. Each cat has properties like color, weight, favorite food, etc. You can retrieve information about the cat stored in the cat object with functions like <code>get_color()</code> or <code>get_weight()</code>.&nbsp;</p><blockquote><p><strong>Reflection time!</strong>: Can you think of a few examples drawn from real life where you could apply this information? What are other examples of classes and objects in your life?</p></blockquote><h3>5. What's the difference between a dictionary and a set in Python?</h3><p>Both dictionaries and sets are collections or data structures that provide a way to store multiple values.&nbsp;</p><p>The <strong>main </strong>difference between them is that dictionaries can store <strong>key-value pairs</strong> with <strong>immutable values</strong> whereas sets can contain <strong>unique values</strong> that are <strong>mutable</strong>. Both sets and dictionaries are unordered collections of items.</p><p>Sets can be declared using the <code>set()</code><strong> </strong>function, while dictionaries can be declared using the <code>dict()</code> function.</p><blockquote><p><strong>Reflection time!</strong>: How would you apply these two types of collection structures in a program? What are some practical examples that illustrate their similarities and differences?</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NmnJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NmnJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NmnJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png" width="248" height="248" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:248,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NmnJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!NmnJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5765b3dc-cf08-40e6-90de-c5d3ceb7cee5_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>6. What are Python modules?</h3><p>A Python module is a <code>.py</code> file containing Python <a href="https://docs.python.org/3/tutorial/modules.html">definitions and statements</a>. Modules are often used to make larger programs easier to maintain. Instead of having to rewrite the same code, you can write a module containing a set of reusable functions to include in your application.</p><blockquote><p><strong>Note</strong>: You can easily make a Python module by saving your code with the <code>.py</code> file extension. Using the 'import' statement, you can import it into another project file.&nbsp;</p></blockquote><h3>7. What is a package in Python?</h3><p>A Python package is a <strong>directory of modules</strong> that can be imported into another project. It is a standard way of distributing Python code. These modules contain Python code, including functions, classes, constants, variables, and more.</p><blockquote><p><strong>Note</strong>:<strong> </strong>Packages are sometimes referred to as libraries, and it's important to note that these are not the same as the Python standard library.&nbsp;</p></blockquote><h3>8. What is the Python standard library?</h3><p>The Python standard library is the set of Python modules included with each version of Python and is not customizable by the end user.&nbsp;</p><p>It includes modules for things like parsing text, performing mathematical operations, and working with dates and times. It also includes modules for more complex tasks like networking and interacting with the OS. These modules provide basic functionality you can use in your code without needing to write your code from scratch.</p><p>The standard library is an important part of the Python language, and it's worth taking the time to <a href="https://docs.python.org/3/library/">get familiar with it</a>.&nbsp;</p><h3>9. What is the difference between a list and a tuple?&nbsp;</h3><p><a href="https://www.educative.io/blog/learn-python-lists-sets-tuples-data-structures?eid=5082902844932096">Lists and tuples</a> represent sequences of values, but the main difference between a list and a tuple is that a list is <strong>mutable</strong>, and a tuple is <strong>immutable</strong>.&nbsp;</p><p>There are some more key differences as well.</p><p><strong>Lists</strong>:&nbsp;</p><ul><li><p>Lists have more memory</p></li><li><p>Elements of a list can be removed or replaced</p></li><li><p>Lists use square brackets <code>[]</code></p></li><li><p>Lists can be declared&nbsp;using the <code>list()</code><strong> </strong>function.&nbsp;</p></li></ul><p><strong>Tuples</strong></p><ul><li><p>Tuples have less memory</p></li><li><p>Elements of a tuple cannot be removed or replaced</p></li><li><p>Tuples use parentheses <code>()</code></p></li><li><p>Tuples can be declared&nbsp;using the <code>tuple()</code> function.</p></li></ul><blockquote><p><strong>Reflection time!</strong>: What are a few cases where you would want to use a tuple over a list and vice versa?&nbsp;</p></blockquote><h3>10. What is a Python namespace?</h3><p>A namespace is a mapping from names to objects. Namespaces help organize variables and functions in Python. When objects are created, the object's address is assigned a namespace to help define its scope. This can prevent naming conflicts when your code base includes multiple libraries.&nbsp;</p><p>There are three types of namespaces:</p><ul><li><p><strong>Built-in</strong> namespaces contain functions of all the built-in objects in Python such as the <code>abs()</code> function.</p></li><li><p><strong>Global</strong> namespaces are for variable names declared at the main level of a program, and exist until the interpreter terminates.</p></li><li><p><strong>Local</strong> namespaces are for variable names declared on a local level, like classes, functions, loops, and other blocks of code.&nbsp;</p></li></ul><h2>Next steps for your interview preparation</h2><p>That's all for this edition of Grokking Python!</p><p>We hope we've given you a taste of what you might encounter in an interview. Obviously, the universe of possible Python questions extends much further than the 10 we've included today. We'll return next month with an edition covering even more Python questions to help you prepare!</p><p>In the meantime, you can practice today's questions while working on <a href="https://www.educative.io/blog/python-algorithms-coding-interview?eid=5082902844932096">Python coding problems</a> and another area of the interview process that candidates often overlook: <a href="https://www.educative.io/blog/behavioral-interviews-how-to-prepare-and-ace-interview-questions?eid=5082902844932096">behavioral interviews</a>.&nbsp;</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for September 2022]]></title><description><![CDATA[TensorStore, software supply chain vulnerabilities, bug fixes, and more!]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-september</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-september</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 29 Sep 2022 14:00:39 GMT</pubDate><enclosure url="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b5295cbd-c65d-4420-81ae-7de8b2019ff6_1264x714.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Grokking Python readers, and happy Thursday!</p><p>As many of you probably know, Python is a rapidly growing programming language. It's used by major companies all over the world, and its popularity seems to be increasing every day.</p><p>Because of this, there are always new updates and developments related to Python. And in today's edition, we're going to take a look at some of the most recent news and updates.</p><p>So, without further ado, here are some recent news and updates related to Python!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L1f7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L1f7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L1f7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png" width="242" height="242" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:242,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!L1f7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!L1f7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff46b7c6e-e93e-44fe-9adf-1eb9437ccd22_512x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Google releases new Python API: TensorStore</strong></h2><p><a href="https://google.github.io/tensorstore/">TensorStore</a> is a new open-source storage library from Google that makes it easy to work with large, multi-dimensional data sets.</p><p>Here are the highlights of TensorStore:</p><ul><li><p>Provides a uniform API for reading and writing multiple array formats, including&nbsp;<a href="https://google.github.io/tensorstore/driver/zarr/index.html">zarr</a>,&nbsp;<a href="https://google.github.io/tensorstore/driver/n5/index.html">N5</a>, and&nbsp;<a href="https://google.github.io/tensorstore/driver/neuroglancer_precomputed/index.html">Neuroglancer precomputed</a>.</p></li><li><p>Natively supports multiple&nbsp;<a href="https://google.github.io/tensorstore/kvstore/index.html">storage drivers</a>, including&nbsp;<a href="https://google.github.io/tensorstore/kvstore/gcs/index.html">Google Cloud Storage</a>,&nbsp;<a href="https://google.github.io/tensorstore/kvstore/file/index.html">local and network filesystems</a>, and&nbsp;<a href="https://google.github.io/tensorstore/kvstore/memory/index.html">in-memory storage</a>.</p></li><li><p>Support for read/writeback caching and transactions, with strong atomicity, consistency, isolation, and durability (<a href="https://en.wikipedia.org/wiki/ACID">ACID</a>) guarantees.</p></li><li><p>Supports safe, efficient access from multiple processes and machines via optimistic concurrency.</p></li><li><p>High-performance implementation in C++ automatically takes advantage of multiple cores for encoding/decoding and performs multiple concurrent I/O operations to saturate network bandwidth.</p></li><li><p>Asynchronous API enables high-throughput access even to high-latency remote storage.</p></li><li><p>Advanced, fully composable&nbsp;<a href="https://google.github.io/tensorstore/index_space.html">indexing operations</a>&nbsp;and virtual views.</p></li></ul><h2><strong>Unpatched for 15 years: Python vulnerability comes back into the spotlight</strong></h2><p>In a <a href="https://www.trellix.com/en-us/about/newsroom/stories/research/limiting-the-software-supply-chain-attack-surface.html">recent blog post</a>, Trellix, a privately held cybersecurity company, stated that their research into a longstanding security flaw in a Python module revealed a substantially large attack surface for software supply chains.</p><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2007-4559">CVE-2007-4559</a> was reported in 2007 to the Python project indicating that the tarfile module was not properly checking for path traversal vulnerabilities. Unpatched, this vulnerability has since been unintentionally added to <strong>hundreds of thousands of open- and closed-source projects</strong> worldwide. The open-source repositories span a number of industry verticals, such as software development, artificial intelligence/machine learning, web development, media, security, and IT management.</p><blockquote><p>"While investigating an unrelated vulnerability our team stumbled across this issue present in an enterprise device. Initially, we thought we had found a new zero-day vulnerability. As we dug into the issue, we realized this was actually CVE-2007-4559. While the vulnerability was originally only marked as a 6.8, we were able to confirm that in most cases an attacker can gain code execution from an arbitrary file write."</p><p>Douglas McKee</p></blockquote><h2><strong>Python 3.11.0rc2 is now available!</strong></h2><p>This is the last preview release before the final release of Python 3.11.0 on Oct. 24. You can find the full Python 3.11 release schedule in <a href="https://peps.python.org/pep-0664/">PEP 664</a>.</p><p>If you're a core developer who has submitted changes, be sure to confirm that your changes are <strong>properly documented</strong>.</p><p>If you maintain any third-party Python projects, this is the time for you to check for any compatibility issues with Python 3.11.</p><h3><strong>Major new features of Python 3.11</strong></h3><ul><li><p><a href="https://www.python.org/dev/peps/pep-0657/">PEP 657</a>&nbsp;&#8211; Include Fine-Grained Error Locations in Tracebacks</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0654/">PEP 654</a>&nbsp;&#8211; Exception Groups and except*</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0673/">PEP 673</a>&nbsp;&#8211; Self Type</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0646/">PEP 646</a>&nbsp;&#8211; Variadic Generics</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0680/">PEP 680</a>&nbsp;&#8211; tomllib: Support for Parsing TOML in the Standard Library</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0675/">PEP 675</a>&nbsp;&#8211; Arbitrary Literal String Type</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0655/">PEP 655</a>&nbsp;&#8211; Marking individual TypedDict items as required or potentially-missing</p></li><li><p><a href="https://bugs.python.org/issue46752">bpo-46752</a>&nbsp;&#8211; Introduce task groups to asyncio</p></li><li><p><a href="https://www.python.org/dev/peps/pep-0681/">PEP 681</a>&nbsp;&#8211; Data Class Transforms</p></li><li><p><a href="https://github.com/python/cpython/issues/34627/">bpo-433030</a>&#8211; Atomic grouping ((?&gt;&#8230;)) and possessive quantifiers (<code>*+, ++, ?+, {m,n}+</code>) are now supported in regular expressions.</p></li><li><p>The&nbsp;<a href="https://github.com/faster-cpython">Faster Cpython Project</a>&nbsp;is already yielding some exciting results. <strong>Python 3.11 is up to 10 to 60% faster than Python 3.10</strong>. On average, a 1.22x speedup on the standard benchmark suite was measured. See&nbsp;<a href="https://docs.python.org/3.11/whatsnew/3.11.html#faster-cpython">Faster CPython for details.</a></p></li></ul><h2><strong>Python releases a bugfix for 3.10.7 and security fixes for 3.9.14, 3.8.134, and 3.7.14</strong></h2><h3><strong>3.10.7</strong></h3><p>Python 3.10.7, the most recent bugfix version of Python, was released outside of the usual update cycle to address <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-10735">CVE-2020-10735</a>, resulting in a smaller number of changes than 3.10.6 (200 commits), or even 3.9.7 (187 commits) from a year ago at the same point in the release cycle. Nonetheless, with over 100 modifications in this most recent Python version, it's worth taking a look at the change log to see what's new and improved since then.</p><h3><strong>3.9.14, 3.8.134, and 3.7.14</strong></h3><p>To avoid potential denial of service (DoS) attacks, converting between <code>int</code> and <code>str</code> in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 &#8212; such as base 10 (decimal) &#8212;&nbsp;<a href="https://docs.python.org/release/3.10.7/whatsnew/3.10.html#notable-security-feature-in-3-10-7">now raises a ValueError</a>&nbsp;if the number of digits in string form is above a certain limit.</p><p>In order to resolve this matter, security releases for 3.9.14, 3.8.14, and 3.7.14 were made available at the same time, in addition to some less pressing security content.</p><p>These updates contain numerous security fixes, so installing the update for your relevant Python version(s) is strongly recommended.</p><h2><strong>PyCharm 2022.2.2 is out!</strong></h2><p>PyCharm 2022.2 was a major release that brought lots of new features and improvements, including support for Python 3.11, an improved HTTP client, and enhancements to the UX. (The full list of changes in the version can be found in the <a href="https://www.jetbrains.com/pycharm/whatsnew/">release notes</a>.)</p><p>PyCharm 2022.2.2, the second bug-fix update for the major release, includes big improvements for Python dataclass support. Read more on the <a href="https://blog.jetbrains.com/pycharm/2022/09/2022-2-2/">PyCharm blog</a>.</p><h2><strong>2022 Django Developers Survey is now available</strong></h2><p>The <a href="https://surveys.jetbrains.com/s3/w-django-developers-survey-2022">2022 Django Developers Survey</a> is now available! This survey aims to collect data about the Django community and show how different developers use Django in their work.</p><p>The survey will run until Oct. 21. If you use Django, consider taking the survey to have a direct impact on future technical and community decisions.</p><p>That's all for today! We hope you&#8217;ve enjoyed this roundup of recent news and updates related to Python. We&#8217;ll be back next month with another recap, so stay tuned.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Essential ingredients for Python career success]]></title><description><![CDATA[Education, experience, and skill requirements for 5 Python specializations]]></description><link>https://www.grokkingpython.com/p/preparing-for-python-career-success</link><guid isPermaLink="false">https://www.grokkingpython.com/p/preparing-for-python-career-success</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 22 Sep 2022 14:01:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kj5h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kj5h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kj5h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kj5h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kj5h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!kj5h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F12a0b172-3758-424b-baf7-91f81652d5f5_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers!</p><p>We&#8217;re all used to fulfilling requirements of some sort, whether from taking courses, applying for jobs, or doing business with banks or government offices. Satisfying various conditions is just part of life, and perhaps nowhere is this more evident than in dealing with potential employers.&nbsp;</p><p>Today, we're going to look closely at <strong>requirements </strong>as we continue our series on Python careers. So far this month, we've talked about different <a href="https://www.grokkingpython.com/p/how-to-start-getting-the-python-career">Python specializations </a>and outlined <a href="https://www.grokkingpython.com/p/start-your-python-job-search-with">six steps to becoming a Python developer</a>. Now, we're turning our attention to certain requirements you&#8217;ll want to satisfy if you&#8217;re launching a Python career.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Don't worry if you're new to this series or newsletter. We'll connect the dots for you. This issue will specifically cover:</p><ol><li><p><strong>Educational requirements</strong></p></li><li><p><strong>Experience requirements</strong></p></li><li><p><strong>Skill requirements</strong></p></li></ol><p>Before we dive in, a quick note. Everyone has different goals and expectations of what kind of Python developer they want to become, and as such, individual requirements will vary. We've done our best to cover various scenarios, but your experience may be different.</p><p>Let's get started!</p><h2><strong>What are the requirements to become a Python developer?</strong></h2><p>There's no single rubric to determine someone's readiness to become a Python developer. When we talk about requirements for education, experience, and technical skills, we are offering broad recommendations based on some common threads within the field.&nbsp;</p><h3><strong>Education</strong></h3><p>It may seem obvious but learning the Python programming language is essential regardless of the type of developer you want to become. That said, you've got options for how you learn!</p><p>A bachelor's degree in computer science or a closely related field is not required but is highly preferred. You can also gain Python skills via a coding bootcamp, certificate course, or self-study.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MKzc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MKzc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MKzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png" width="200" height="200" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:200,&quot;bytes&quot;:30524,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MKzc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!MKzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F64395120-0b2b-4bcc-a9f6-fd2493783cbe_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Relevant experience</strong></h3><p>To get a Python job, you will need experience. Requirements will vary depending on the seniority level of the job you are applying for.&nbsp;</p><p>The best ways to gain experience in Python despite having no professional industry experience include:</p><ul><li><p><strong>Internships:</strong> Internships will help you gain the know-how of a developer and give you the opportunity to practice skills while you&#8217;re learning them. Many times, interns get full-time employment offers from companies.&nbsp;</p></li><li><p><strong>Contributing to open-source projects</strong>: Open-source projects are an excellent way to showcase your skills to the world because they are public, and employers can verify your skills directly.&nbsp;</p></li></ul><h3><strong>Technical skills</strong></h3><p>Different Python specializations require various technical skills. We have listed the skills you will likely need for five different Python specializations below, giving examples of specific technologies in parentheses. We&#8217;ve also provided additional details about education and experience requirements.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QVU-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QVU-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QVU-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png" width="182" height="182" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:182,&quot;bytes&quot;:32326,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QVU-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!QVU-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1fa05616-b5d3-457c-bff7-9cf69519fa81_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>1. Data Scientist</strong></h4><p><strong>Skills and technologies&nbsp;</strong></p><ul><li><p>Data scraping (Selenium, Beautiful Soup, etc.)</p></li><li><p>SQL</p></li><li><p><a href="https://www.grokkingpython.com/p/python-in-action-data-visualization">Data visualization</a> (matplotlib, Pandas)</p></li><li><p>Machine learning (scikit-learn)</p></li></ul><p><strong>Education and experience</strong></p><ul><li><p>A bachelor's degree in data science, mathematics, statistics, or computer science is likely required.</p></li><li><p>Experience with statistical analysis, linear regression, and data visualization.</p></li></ul><h4>2. <a href="https://www.grokkingpython.com/p/python-in-action-web-development">Web application developer</a></h4><p><strong>Skills and technologies&nbsp;</strong></p><ul><li><p>Version control (Git, GitHub)</p></li><li><p>Object-oriented programming in Python</p></li><li><p>Web frameworks (Django, Flask, etc.)</p></li><li><p>Other popular Python libraries</p></li><li><p>HTML, CSS, JavaScript</p></li></ul><p><strong>Education and experience</strong></p><ul><li><p>A bachelor's in computer science is beneficial, but not required, especially if you are targeting junior roles.</p></li><li><p>Entry-level positions and junior roles are widely available.</p></li></ul><h4>3. <a href="https://www.grokkingpython.com/p/python-in-action-machine-learning">Machine learning engineer</a></h4><p><strong>Skills and technologies&nbsp;</strong></p><ul><li><p>A solid knowledge of core Python</p></li><li><p>Data structures and algorithms</p></li><li><p>SQL</p></li><li><p>Probability, statistics, and mathematics</p></li><li><p>Data modeling</p></li><li><p>Scikit-learn, Pandas, Numpy, Seaborn</p></li></ul><p><strong>Education and experience</strong></p><ul><li><p>Most employers expect a minimum of a mathematics or computer science degree.&nbsp; A few even require a master's or higher, especially for research-based roles.</p></li><li><p>These positions are usually not entry-level. It is possible and at times easier to make a career switch from software engineering to machine learning.&nbsp;</p></li></ul><h4>4. <a href="https://www.grokkingpython.com/p/python-in-action-game-development">Game developer</a></h4><p><strong>Skills and technologies&nbsp;</strong></p><ul><li><p>Object-oriented programming in Python</p></li><li><p>Python game development frameworks (PyGame, Pyglet, PyKyra, PyOpenGL, Panda3D, etc.)</p></li><li><p>Other programming languages (C++, Java, etc.)</p></li></ul><p><strong>Education and experience</strong></p><ul><li><p>A bachelor's degree in computer science is preferred, but bootcamp grads and self-taught developers are also hired in these roles.&nbsp;</p></li><li><p>While Python is used for game development, it is not the primary language used, and you will most likely require experience in other programming languages to stand out as a competitive applicant.</p></li></ul><h4>5. Software automation engineer (IT)</h4><p><strong>Skills and technologies</strong></p><ul><li><p>SQL</p></li><li><p><a href="https://www.grokkingpython.com/p/python-in-action-data-visualization">Data visualization</a> (matplotlib, Pandas)</p></li><li><p>Machine learning (scikit-learn)</p></li><li><p>Developing and implementing REST APIs</p></li><li><p>A solid knowledge of core Python</p></li><li><p>Applied mathematics and engineering</p></li></ul><p><strong>Education and experience</strong></p><ul><li><p>A bachelor's degree in computer science is preferable, but employers will hire candidates with bootcamp backgrounds based on their coding expertise.</p></li><li><p>Sometimes, even entry-level automation engineer jobs require a bachelor's in an engineering field such as mechanical engineering.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WI1H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WI1H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WI1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png" width="190" height="190" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:190,&quot;bytes&quot;:37149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WI1H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!WI1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0b06f4d3-7ce2-4452-877b-e712b2574cb7_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Soft skills</strong></h3><p>While technical skills will ensure you have what it takes to get the job done, it is equally important to have good soft skills. Employers are looking for a certain set of soft skills, such as:&nbsp;</p><ul><li><p>Leadership and ownership</p></li><li><p>Analytical problem-solving skills</p></li><li><p>Tenacity</p></li><li><p>Communication and teamwork</p></li><li><p>Eagerness to learn</p></li></ul><p>Typically, employers ask applicants behavior-based questions about these skills to gauge whether they have what it takes to perform well on a team.&nbsp;</p><h2><strong>Next steps to becoming a Python developer</strong></h2><p>Congratulations on completing the third and final edition of our series on becoming a Python developer! If you've read the whole series, you probably have a solid idea of the journey ahead, including the steps to follow, skills and other requirements, potential compensation, and roles you can expect in this field.&nbsp;</p><p>Now, depending on your goals, you can start refining your career plan and working on your Python dream.&nbsp;</p><p>At Educative, we can help you get started with a free crash course, <a href="https://www.educative.io/courses/learn-python-3-from-scratch?eid=5082902844932096">Learn Python 3 from Scratch</a>, which gives you hands-on experience in Python 3 and teaches you everything from basics to advanced concepts.&nbsp;</p><p>Additionally, you can learn about more specialized technologies from the following resources:&nbsp;</p><ul><li><p><a href="https://www.educative.io/blog/pycaret-machine-learning?eid=5082902844932096">Intro to Python machine learning with PyCaret</a></p></li><li><p><a href="https://www.educative.io/blog/top-python-web-frameworks?eid=5082902844932096">5 top Python web frameworks of 2022</a></p></li><li><p><a href="https://www.educative.io/blog/python-web-scraping-tutorial?eid=5082902844932096">Web scraping with Python: A quick guide</a></p></li></ul><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Start your Python job search with confidence]]></title><description><![CDATA[Tips for preparing to look for your ideal role, plus how much you could earn]]></description><link>https://www.grokkingpython.com/p/start-your-python-job-search-with</link><guid isPermaLink="false">https://www.grokkingpython.com/p/start-your-python-job-search-with</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 15 Sep 2022 14:00:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J_Rn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J_Rn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J_Rn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J_Rn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c4063660-0024-403c-9783-874b14baf020_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75637,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!J_Rn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!J_Rn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4063660-0024-403c-9783-874b14baf020_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers!</p><p>Have you ever searched for a new job and run into nothing but frustration? It's not an uncommon outcome, but it doesn't have to be that way! By following advice from experts and successful job searchers, you can reduce the headaches associated with looking for a new role.&nbsp;</p><p>Today, we'll share some of this advice as we continue our discussion of Python developer careers. Last week, we covered <a href="https://www.grokkingpython.com/p/how-to-start-getting-the-python-career">different career paths and the first three steps to becoming a Python developer</a>. To review, those steps were:&nbsp;</p><ul><li><p>Step 1. Make a career plan</p></li><li><p>Step 2. Get an education</p></li><li><p>Step 3. Get real-world experience</p></li></ul><p>Today, we'll go over the next three steps of the process, which focus on preparing for and conducting a job search. We'll also discuss how long your journey to becoming a Python developer might take and how much you can expect to make in different roles.</p><p>Let's go!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SrLf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SrLf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SrLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png" width="178" height="178" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:178,&quot;bytes&quot;:18634,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SrLf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!SrLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc092a73c-a1fd-4d23-a46c-e3841e3f7f3d_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Step 4. Earn a certification (optional)</h2><p>After finishing your education, you'll typically have some kind of credential to show for your efforts, like a diploma or a certificate. But so will many other aspiring developers! To stand out to employers, consider pursuing an additional credential, like a professional certification.&nbsp;</p><p>We've included this as Step 4 but earning a certification can be worked into any stage of your plan or even after you've landed a job. Some certification programs even require previous work experience in the field.&nbsp;</p><blockquote><p><strong>Compare and contrast</strong>: There is a difference between a <em>certification</em> and a <em>certificate</em>. Certifications are industry specific and typically provided by tech organizations, and they denote your ability to perform a technical task. Certificates are generally offered through colleges and universities and provide a crash course in a professional field. Many certificate programs also offer specialization within these fields, providing opportunities to increase your value to employers further.</p></blockquote><p>Universities and colleges offer many different certificates. They are typically structured for those who already work 40 hours a week, and there are some that are in-person, online, or completely asynchronous.</p><p>Certifications are a great way to show employers your skills and commitment to the field. They can even be used as a bargaining chip when it comes time to negotiate or adjust your salary.</p><p>Some popular Python-specific certifications include:</p><ul><li><p><a href="https://pythoninstitute.org/pcep">PCEP &#8211; Certified Entry-Level Python Programmer</a></p><ul><li><p>The Python Institute has a host of Python certifications, the one above is intended for beginners</p></li></ul></li><li><p><a href="https://bootcamp-sl.discover.online.purdue.edu/data-science-certification-course">Professional Certificate Program in Data Science</a></p></li><li><p><a href="https://www.pce.uw.edu/certificates/python-programming">Certificate in Python programming</a></p></li></ul><p><strong>Time estimate</strong>: Certifications take varying amounts of time. The quickest can be completed in only a few months, but others may take one or two years depending on the pacing, and the breadth and depth of content.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WtLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WtLG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WtLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png" width="174" height="174" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:174,&quot;bytes&quot;:37466,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WtLG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!WtLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdca4064-f15f-4e17-b843-9fe58ded0561_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Step 5. Prepare for your job search</h2><p>Preparation is key to executing an efficient job search. Before you start submitting applications, consider the following:</p><ul><li><p><strong>How can I leverage and expand my network?</strong> Use LinkedIn and other social media to connect with fellow alumni or other Python developers, especially if they work for companies you're interested in. Attend Python conferences, which often feature job fairs and provide great opportunities to meet passionate developers already working in the industry.&nbsp;</p></li><li><p><strong><a href="https://www.educative.io/blog/projects-launch-announcement-build-your-portfolio?eid=5082902844932096">Can I improve my portfolio to highlight my skills better?</a></strong> We also included this in Step 3 (gain experience), but only because it's so important. Having a portfolio of work that you're prepared to talk through is crucial when it comes time to interview.</p></li><li><p><strong><a href="https://www.codinginterview.com/interview-roadmap">What areas of the interview process do I need to work on?</a></strong> Solve coding challenges, study common technical <em>and</em> behavioral questions, and be prepared to talk about specific experiences from your journey thus far.</p></li></ul><p><strong>Time estimate</strong>: Spend at least one to three months on this step. Failing a technical interview is never fun.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oQ0U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oQ0U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oQ0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png" width="152" height="152" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:152,&quot;bytes&quot;:45664,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oQ0U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!oQ0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce11a11-a8d8-4f19-bf0b-a1a665118074_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Step 6. Search for Python programmer jobs</h2><p>If you've come this far, pat yourself on the back. It's a long road, but we assure you it will be worth it. There are plenty of online resources that double as job boards:</p><ul><li><p>Indeed</p></li><li><p>LinkedIn</p></li><li><p>Glassdoor</p></li><li><p>Dice</p></li><li><p>ZipRecruiter</p></li></ul><p>Browse any or all of these sites to find jobs worth applying to. We recommend keeping a spreadsheet or some form of documentation to track your job applications, as it is easy to forget the particulars of each job during the search.</p><p><strong>Time estimate</strong>: Most of the time, it will take at least several months, even if employers respond and schedule interviews promptly. Hiring managers and recruiters are typically difficult to pin down as far as the time between applying and hiring. Furthermore, companies' hiring practices can differ a lot in terms of the amount of communication you'll receive and the speed of the process. Don't be conservative with how many applications you submit, and try not to get discouraged if you find yourself in a streak of rejection. A lot of the time, it comes down to putting yourself out there and<strong> being persistent</strong>.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sx9h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sx9h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sx9h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png" width="172" height="172" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:172,&quot;bytes&quot;:23023,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sx9h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!sx9h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9850f636-edb0-4c13-9e81-a01ca8c5d950_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>How long does it take to become a Python developer?</h2><p>If you've been doing the math along the way, you'll know that the total time it takes to become a Python developer varies greatly. It may take only a few months to several years to fully reach your Python developer dreams, depending on several factors.</p><ul><li><p>Prior technical knowledge: How much do you know about Python or your prospective area of work?</p></li><li><p>Work experience: How well does your work history align with this new career venture?</p></li><li><p>Education: What level of education do you have to start the process?</p></li><li><p>Career goals: If you're aiming to start as a junior developer and work up, you'll be employable sooner than if you aim to be a senior machine learning engineer.</p></li><li><p>Job market: The time it takes is also greatly influenced by economic factors well out of your control. If there are few jobs available and competition is high, be prepared to spend more time upskilling and searching for jobs, as you will be competing with a larger pool of applicants.</p></li></ul><p>It's an ambiguous answer, but there are so many different Python applications and even more jumping-off points depending on your personal situation. If you already have a bachelor's in computer science and have used Python before, you're already well on your way. If the job market is healthy and you are equipped with a workable portfolio, it may take only a few months until you find yourself getting paid to use Python.&nbsp;</p><p>If you're starting from scratch and want to get a degree, don't fret. Just be prepared to spend several years getting where you want to go. Luckily the tech industry and Python aren't going anywhere anytime soon.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oPdc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oPdc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oPdc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png" width="176" height="176" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fae94b65-c137-454f-a992-f228901aae46_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:176,&quot;bytes&quot;:25100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oPdc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!oPdc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffae94b65-c137-454f-a992-f228901aae46_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>How much can you expect to make as a Python developer?</h2><p>Since there are so many different technical specializations to skill into for Python developers, it can be tricky to nail down one pay-range estimate. We'll break down what certain specializations may make on average, according to the <a href="https://www.bls.gov/ooh/computer-and-information-technology/home.htm">U.S. Bureau of Labor Statistics</a> (BLS).&nbsp;</p><ul><li><p><strong>Data scientist</strong>: $108,660 per year</p></li><li><p><strong>Software developer (general)</strong>: $110,140 per year</p></li><li><p><strong>Machine learning engineer</strong>: $131,490 per year</p></li><li><p><strong>Computer systems analyst</strong>: $99,270 per year</p></li><li><p><strong>Web developer</strong>: $77,200 per year</p></li></ul><blockquote><p><strong>Remember</strong>: These numbers are just averages, so your actual salary might be higher or lower than these values.</p></blockquote><p>Regardless of your field of study or your projected career path, the opportunity for growth in tech and programming jobs is remarkable. As your experience and role tenure increase, your salary will too. Starting by learning Python can help you break into some of the <a href="https://www.educative.io/blog/best-paying-jobs-in-tech?eid=5082902844932096">highest-paying jobs in tech</a>.</p><blockquote><p><strong>Pro tip</strong>: Glassdoor allows current and past employees to submit anonymous reviews regarding compensation and company culture.</p></blockquote><h2>We'll wrap up next week with more essential advice</h2><p>We hope you feel more confident about preparing for and executing a job search. Even if it isn't your first trip through this process, hopefully, you've found some nuggets of helpful information in today's edition.</p><p>The road to a Python developer career may appear long but remember: the compensation and less tangible benefits of completing this journey can be pretty compelling!&nbsp;</p><p>Next week, we'll conclude our September career series with more Python-specific guidance, including notes about the skills, technologies, education, and experience that are required for various specializations.</p><p>If you want to keep making progress toward your goal, consider reading about the importance of soft skills and other traits beyond technical ability in the meantime. For starters, you can check out this article on <a href="https://www.educative.io/blog/characteristics-outstanding-developer?eid=5082902844932096">6 characteristics that can make you an outstanding developer</a>.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to start getting the Python career of your dreams today]]></title><description><![CDATA[This month we're breaking down exactly what it takes to become a Python pro]]></description><link>https://www.grokkingpython.com/p/how-to-start-getting-the-python-career</link><guid isPermaLink="false">https://www.grokkingpython.com/p/how-to-start-getting-the-python-career</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 08 Sep 2022 14:01:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AVT-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AVT-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AVT-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AVT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41064,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AVT-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!AVT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1518ea61-aa92-4720-8dbd-d1bfe7a2967d_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers!</p><p>We're dedicating three issues this month to one vital topic &#8211; the steps you need to take to become a fully fledged Python developer.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Here at Educative, we provide proven resources for developers, by developers. To help our Python learners get the most out of our platform and reach their goals, we've decided to augment these resources with a step-by-step career guide.&nbsp;</p><p>If you aren't sure what career path to pursue, don't fret! We'll first break down all the possible paths that rely heavily on Python. If you've been a subscriber for a while, you may already be aware of some of the use cases of Python. If you're brand new to Grokking Python, welcome, and there's no need to feel behind. We'll explain what each field does and how Python plays a part.</p><p>Afterward, we'll tell you how to begin your journey. This issue will outline precisely how to:</p><ol><li><p><strong>Create a career plan</strong></p></li><li><p><strong>Get an education</strong></p></li><li><p><strong>Gain real-world experience</strong></p></li></ol><blockquote><p>We'll close out each step with an estimated time requirement.</p></blockquote><p></p><h2>What Python specialization is right for you?</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hJvj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hJvj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 424w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 848w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 1272w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hJvj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png" width="476" height="316.46153846153845" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:968,&quot;width&quot;:1456,&quot;resizeWidth&quot;:476,&quot;bytes&quot;:84160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hJvj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 424w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 848w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 1272w, https://substackcdn.com/image/fetch/$s_!hJvj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6997cab6-4848-4d9f-80b9-f1aeacdc302b_1755x1167.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Python is officially being used more than <strong>any other language in the world</strong>. It's hard to find a tech domain that <em>isn't</em> extensively using Python in some regard.&nbsp;</p><p>As a result, there are tons of different potential fields for a Python developer, and the one you intend to specialize in will more closely inform your own process. Some of the potential paths of a Python developer and related Python resources include:</p><ul><li><p><strong>Data scientist</strong>: Use programming languages and coding skills to collect, analyze, and visualize large data sets.&nbsp;</p><ul><li><p>Matplotlip, Numpy</p></li></ul></li><li><p><strong>Machine learning engineer</strong>: Design and implement algorithms and artificial intelligence in concert with a larger data sciences team.&nbsp;</p><ul><li><p>TensorFlow</p></li></ul></li><li><p><strong>Software application developer</strong>: Responsible for designing, developing, troubleshooting, and updating software applications of all sorts. This is a broad field that encompasses many of the classic <a href="https://www.educative.io/blog/how-to-become-a-computer-programmer?eid=5082902844932096">computer programmer</a> tasks.</p><ul><li><p>Tkinter</p></li></ul></li><li><p><strong>Web app developer</strong>: Design, launch, maintain, and update web pages and web applications designed for mobile and desktop.</p><ul><li><p>Django, Flask</p></li></ul></li><li><p><strong>Software automation engineer</strong>: In this specific information technology (IT) role, optimize existing software systems by automating data-heavy processes.</p><ul><li><p>Selenium</p></li></ul></li><li><p><strong><a href="https://www.grokkingpython.com/p/python-in-action-game-development?eid=5082902844932096">Game developer</a></strong>: Although it's not the most common language for game developers, Python is indeed capable of building 2D and 3D video games.</p><ul><li><p>Panda3D, Pygame</p></li></ul></li></ul><blockquote><p>The libraries and frameworks cited here are just a taste of what you might need to learn as an aspiring Python dev. We'll focus on more of these technical skill requirements in our Sept. 22 issue!</p></blockquote><p>A multitude of other fields rely on Python as well. We won't specifically dive deeper into them here, but if you want to research them yourself a few other popular ones are:</p><ul><li><p><strong><a href="https://www.grokkingpython.com/p/python-in-action-finance-3-practical?eid=5082902844932096">Finance</a></strong>: The same features and libraries that make Python excel in data science also make it particularly useful for finance. It can assess trends in large data sets, as well as aid risk management efforts.</p></li><li><p><strong>Task automation</strong>: In addition to serving the IT field, Python can perform many different automations such as: website scraping, report generation, file storage management, and logging.</p></li><li><p><strong><a href="https://www.grokkingpython.com/p/python-in-action-data-visualization?eid=5082902844932096">Data visualization</a></strong>: We touched briefly on Python's ability to map data in our definition of data scientists, but it's one of the main draws to the language in careers that require data manipulation.</p></li></ul><p>Now that you know what some possible career paths are, let's talk about how you can get started down them.</p><p></p><h2>Step 1. Make a career plan</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lnlr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lnlr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lnlr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png" width="168" height="168" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:168,&quot;bytes&quot;:37791,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lnlr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!lnlr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fec5c2e-fa30-486b-9071-715dcdb204a2_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Regardless of your goals or your skill level, you'll need to make a plan. Planning will help you in the long run by preparing you for the time commitment and allowing you to more clearly visualize your individual goals.&nbsp;&nbsp;</p><p>Everyone's plan will look a little different, but you can start by asking yourself a few questions:</p><h4>How do you want to learn Python?</h4><p>Getting an education is the biggest step in the whole process, and, depending on the path you end up taking, it will require the most investment of time and money. It's true that many jobs don't specifically <strong>require</strong> a bachelor's degree in computer science, but many employers prefer it. Regardless, there are plenty of other ways to learn Python that can be both valuable to you and meaningful to a potential employer. If you aren't sure what the right option for you is, check out the differences between a <a href="https://www.educative.io/blog/coding-bootcamp?eid=5082902844932096">coding bootcamp and a computer science degree</a>.</p><h4>What areas of Python interest you?&nbsp;</h4><p>As mentioned above, there are tons of different applications when it comes to Python. As you progress through your education and gain experience, you'll get exposure to fields you like and dislike, but it's crucial to consider this beforehand.</p><p>If you already have a specialization in mind, that's great, but you should still seek out as many&nbsp;different experiences as possible. You'll be a more well-rounded programmer as a result.&nbsp;</p><p><strong>Time estimate:</strong> Everyone spends a different amount of time planning their career journey. We recommend taking <strong>at least a month</strong> to give yourself time to research and process your decisions.</p><p></p><h2>Step 2. Get an education</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c1G-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c1G-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c1G-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png" width="524" height="262" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:524,&quot;bytes&quot;:33360,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c1G-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!c1G-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9c681d1-147a-4039-b7ee-b4eae37d59e0_1024x512.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are plenty of options to choose from when considering your education. We'll break them down in descending order of time to complete.</p><ul><li><p><strong>Bachelor's degree + Master's degree in CS or related field</strong></p><ul><li><p>Six years total (4 years + 2 years)</p></li><li><p><strong>&#10133;</strong> Covers a wide range of material and opens the door for specializations and senior roles</p></li><li><p>&#10134; Requires the most time and money relative to other options</p></li></ul></li><li><p><strong>Bachelor's degree in CS or related field</strong></p><ul><li><p>4 years</p></li><li><p><strong>&#10133;</strong> Covers a wide range of material, and many employers prefer candidates with a relevant 4-year degree</p></li><li><p>&#10134; Still requires a significant amount of time and money</p></li></ul></li><li><p><strong>Associate degree + Bachelor&#8217;s degree in CS or related field</strong></p><ul><li><p>Four years total (2 years + 2 years)</p></li><li><p><strong>&#10133;</strong> Often simpler and cheaper than a traditional bachelor's degree while still providing comparable coursework and skills</p></li><li><p>&#10134; Requires a significant time investment</p></li></ul></li><li><p><strong>College/university certificate</strong></p><ul><li><p>One to two years</p></li><li><p><strong>&#10133;</strong> Requires significantly less money than other options and focuses on technical skills and job readiness</p></li><li><p>&#10134; Doesn't cover as many topics as a longer, more expensive program</p></li></ul></li><li><p><strong>Full-time coding bootcamp</strong></p><ul><li><p>12 weeks</p></li><li><p><strong>&#10133;</strong> Values brevity over breadth, focuses on meaningful technical skills and workplace best practices</p></li><li><p>&#10134; Initial job prospects may be limited to more junior roles following your education</p></li></ul></li><li><p><strong>Self-study</strong></p><ul><li><p>12 weeks to multiple years</p></li><li><p><strong>&#10133;</strong> Completely flexible schedule, with unrivaled options for topic coverage</p></li><li><p>&#10134; Demands discipline and tenacity and the time to employment is nebulous</p></li></ul></li></ul><p><strong>Time estimate:</strong> Depending on your prior experience and the route you end up pursuing, your education may take anywhere from <strong>12 weeks to six years</strong>.</p><p></p><h3>Step 3. Get real-world experience</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IGPV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IGPV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IGPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png" width="188" height="188" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:188,&quot;bytes&quot;:38541,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IGPV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!IGPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F686287d1-1411-48d5-8d19-1d8db6c066fb_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Employers almost always require some sort of real-world experience. Luckily there are more ways to demonstrate your expertise than just work experience.&nbsp;</p><p>If you're a student in some capacity, odds are you'll be able to apply for <strong>internships</strong>. If you want to gain experience fast, consider:</p><ul><li><p>Signing up for a <strong>hackathon</strong></p></li><li><p>Contributing to <strong>open-source projects</strong></p></li><li><p>Developing your own <strong>personal projects</strong></p></li></ul><p>Most degree programs, bootcamps, and even university certificates provide resources that can connect you to networks to help you gain real-world experience. Do your due diligence and research what resources are available to you in your individual situation.</p><p>During this step you'll be working on code that will be of interest to employers. Be sure to document your progress and catalog your work in a portfolio. This will make your life easier when it comes time to gather the required materials for a job search.</p><p>Continue reading about <a href="https://www.educative.io/blog/projects-launch-announcement-build-your-portfolio?eid=5082902844932096">creating a portfolio</a>, or:</p><ul><li><p><a href="https://www.educative.io/blog/write-software-development-resume?eid=5082902844932096">Updating your resume</a></p></li><li><p><a href="https://www.educative.io/blog/how-to-plan-a-coding-project?eid=5082902844932096">Planning your own projects</a></p></li><li><p><a href="https://www.educative.io/blog/contribue-open-source-python-project?eid=5082902844932096">Working on an open-source project</a></p></li><li><p><a href="https://www.educative.io/blog/build-personal-brand-software-engineer?eid=5082902844932096">Building your brand</a></p></li></ul><p><strong>Time estimate:</strong> Most internships last around <strong>three months</strong>. Budget at least this much time when gaining experience in your field of choice.</p><p></p><h2>Stay tuned to learn what comes next&#8230;</h2><p>That's all for this edition of Grokking Python!</p><p>Hopefully, we've given you more than enough to get the ball rolling on your own Python developer journey. Set a goal to make a rough draft of a plan in time for the next edition. In a week, we'll dive a bit more into the job search and how to prepare for it.</p><p>If you feel inspired to learn more, but find yourself struggling in the thick of it, check out this article on <a href="https://www.educative.io/blog/5-proven-learning-strategies?eid=5082902844932096">5 proven learning strategies</a>.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python news wrap-up for August 2022]]></title><description><![CDATA[Despite recent malware attacks, Python remains more popular than ever! Plus, news about Shiny for Python and exciting conferences in September]]></description><link>https://www.grokkingpython.com/p/python-news-wrap-up-for-august-2022</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-news-wrap-up-for-august-2022</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 01 Sep 2022 14:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pvmN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Grokking Python readers, and happy Thursday! </p><p>August was quite a month for people in the Python and cybersecurity communities, so let&#8217;s dive right in. </p><h2><strong>PyPi phishing campaign and malware attack</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pvmN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pvmN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pvmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png" width="206" height="206" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:206,&quot;bytes&quot;:17508,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pvmN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!pvmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F92fa767b-13d7-4ec0-b89c-028e73e8cc0c_512x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h3><strong>Recent Python malware attacks used "typosquatting" to put thousands of developers at risk</strong></h3><p>PyPI published a Twitter thread reporting the details of a recent phishing campaign that used typosquatting to target its users. Reports of new malicious releases are currently under review.</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/pypi/status/1562442188285308929&quot;,&quot;full_text&quot;:&quot;Today we received reports of a phishing campaign targeting PyPI users. This is the first known phishing attack against PyPI. \n\nWe&#8217;re publishing the details here to raise awareness of what is likely an ongoing threat.&quot;,&quot;username&quot;:&quot;pypi&quot;,&quot;name&quot;:&quot;Python Package Index&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Wed Aug 24 14:10:21 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:314,&quot;like_count&quot;:375,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>If you believe you may have entered your credentials on a phishing site, make sure to:</p><ol><li><p>Reset your password</p></li><li><p>Reset your 2FA recovery codes</p></li><li><p>Review your PyPI account for suspicious activity</p></li></ol><h3><strong>What is typosquatting?</strong></h3><p>Typosquatting is a type of cyberattack in which hackers register domain names that are similar to popular website names, in the hope that users will mistype the name of the site and be redirected to the malicious site. This can lead to users inadvertently downloading malware or revealing personal information to the hackers.</p><p>Unsurprisingly, this method can also be used to deceive developers into downloading what they believe are popular Python packages. In fact, this is exactly what happened in July 2020, when the malicious Python "request" package was <a href="https://discuss.python.org/t/improving-risks-and-consequences-against-typosquatting-on-pypi/5090">downloaded over 10,000 times</a> by people who believed they were downloading the "requests" package.</p><p>A similar technique called StarJacking falsifies the <a href="https://stars.github.com/program/">GitHub Stars</a> statistics for a package to make it appear popular. According to Checkmarx, an application security testing company, PyPi is one of the package managers where <a href="https://checkmarx.com/resources/homepage/malicious-pypi-user-strikes-again-with-typosquatting-starjacking-and-unpacks-tailor-made-malware-written-in-c">developers are especially vulnerable</a> to both of these techniques.</p><p>As a final note, please remember to be aware of the risks that come with downloading and using packages as dependencies in your projects. Err on the side of caution, and always double-check your package names.</p><h2><strong>Python seizes the No. 1 spot on the TIOBE index for August 2022</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZyyO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZyyO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZyyO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png" width="182" height="182" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/faf1c546-ed57-47c5-9160-ddbef513565b_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:182,&quot;bytes&quot;:18037,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZyyO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!ZyyO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaf1c546-ed57-47c5-9160-ddbef513565b_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The <a href="https://www.tiobe.com/tiobe-index/">TIOBE Programming Community index</a> is an indicator of the popularity of programming languages, and it&#8217;s indicating that Python is more popular than ever. </p><p>Python took first place on the TIOBE index for August with a +2% increase in popularity this month, and now represents 15.42% of the total index. This makes Python the most popular programming language in the world!</p><h2><strong>RStudio's Shiny for Python enters into Alpha</strong></h2><p>RStudio, a popular development environment for the R programming language, has announced the alpha release of its new <a href="https://shiny.rstudio.com/py/">Shiny for Python</a> package. Shiny is a web application framework that allows Python developers to create interactive web applications without having to learn any web development skills.</p><p>If you're interested in testing it out or providing feedback, you'll be thrilled to know that you can <a href="https://shiny.rstudio.com/py/docs/get-started.html">learn Shiny completely within the browser</a>, with no installation required!</p><h2><strong>Upcoming conferences</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AUIv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AUIv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AUIv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png" width="214" height="214" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:214,&quot;bytes&quot;:14368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AUIv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!AUIv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ae804e-b09d-4f2c-83df-e9d355a9b296_512x512.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p><strong>EuroSciPy 2022</strong> is just around the corner! The<a href="https://dev.events/conferences/euro-sci-py-basel-7-2022"> 14th annual European Conference on Python in Science</a> will run from Aug. 29 through Sept. 2. Be sure to check it out if you're interested in using Python in scientific research.</p></li><li><p><strong>DjangoCon Europe 2022</strong> will be running from Sept. 21-25. Be sure to <a href="https://dev.events/conferences/django-con-europe-porto-8-2022">grab your tickets</a> while they're still available! A limited quantity is left.</p></li><li><p><strong>PyBay 2022: Food Truck Edition</strong> is coming to San Francisco and online for its <a href="https://pybay.com/">7th annual Python conference</a>. There's a lineup of 25 speakers, and you can check out the <a href="https://pybay.com/speakers/">full list on their website</a>. If you're attending in person, you'll get to enjoy samples from nearly 20 food trucks, network with hiring companies, and listen to live music!</p></li></ul><h2><strong>New Python courses on Educative</strong></h2><p>To end this month's update on a bright note, here are a couple of the latest Python courses to drop on Educative!</p><h3><strong><a href="https://www.educative.io/courses/financial-services-square-api-python?eid=5082902844932096">Handling Financial Services with Square API in Python</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4isf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4isf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 424w, https://substackcdn.com/image/fetch/$s_!4isf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 848w, https://substackcdn.com/image/fetch/$s_!4isf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 1272w, https://substackcdn.com/image/fetch/$s_!4isf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4isf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png" width="416" height="204.88389513108615" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:263,&quot;width&quot;:534,&quot;resizeWidth&quot;:416,&quot;bytes&quot;:56473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4isf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 424w, https://substackcdn.com/image/fetch/$s_!4isf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 848w, https://substackcdn.com/image/fetch/$s_!4isf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 1272w, https://substackcdn.com/image/fetch/$s_!4isf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0d481c-d945-4692-8c15-e416b7d374bf_534x263.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Want to build a strong foundation in using Square APIs for business applications but don't know where to start? This is a great course for beginners who want to learn how to accept payments securely, intermediate learners who want to explore Square API in more detail, and professionals who want to integrate Square API into their next project. </p><p><strong>Note</strong>: This course is available for free!</p><p>In <strong>under 2 hours</strong>, you can:</p><ul><li><p>Get familiarized with various Square APIs for business operations</p></li><li><p>Get a working knowledge of order creation and retrieval mechanisms using Square API</p></li><li><p>Learn how to generate and update invoices attached to order records using Square API</p></li><li><p>Learn how to make, record, and refund payments using Square API</p></li><li><p>Get hands-on experience integrating Square business and payment functions into a Django application using Square APIs</p></li></ul><p><strong>Prerequisites</strong>: A basic understanding of APIs and some fundamental knowledge of the Python programming language.</p><h3><strong><a href="https://www.educative.io/courses/rest-api-python-microsoft-azure?eid=5082902844932096">Build a REST API using Python and deploy it to Microsoft Azure</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xS8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xS8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 424w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 848w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 1272w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xS8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png" width="422" height="211.78731343283582" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:269,&quot;width&quot;:536,&quot;resizeWidth&quot;:422,&quot;bytes&quot;:62246,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xS8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 424w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 848w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 1272w, https://substackcdn.com/image/fetch/$s_!-xS8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb04d6a2b-c446-4f94-8614-732afc8b1fed_536x269.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>If you have more experience under your belt and want to learn how to build your own web APIs, then check out this course. You'll start from the basics of using REST API, move on to the framework for developing APIs in Python, and then build some neat projects to deploy on Microsoft Azure. </p><p><strong>Note</strong>: This is a paid course, but you can try it by signing up for a free seven-day trial!</p><p>In <strong>under 3 hours</strong>, you will:</p><ul><li><p>Understand the concept of an API</p></li><li><p>Learn about the FastAPI Python web framework</p></li><li><p>Learn to implement Optical Character Recognition</p></li><li><p>Learn and understand different services provided by Azure</p></li><li><p>Get familiarized with Git and GitHub</p></li><li><p>Build and Deploy an API to Microsoft Azure App Services</p></li></ul><p><strong>Prerequisites</strong>: Basic understanding of Python, logging, and programming concepts.</p><p>That&#8217;s it for now! We&#8217;ll be back next month with another recap, so stay tuned for more updates and news in the Python community. </p><p><em>As always, happy learning! </em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Jupyter Notebooks: Work with data, code, and comments all under one roof]]></title><description><![CDATA[Get started with a great tool for creating versatile computational notebooks]]></description><link>https://www.grokkingpython.com/p/jupyter-notebooks-work-with-data</link><guid isPermaLink="false">https://www.grokkingpython.com/p/jupyter-notebooks-work-with-data</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 25 Aug 2022 14:00:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lsBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lsBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lsBF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lsBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lsBF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!lsBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c276829-f12e-4ee6-9adb-490672496cc4_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Grokking Python readers!</p><p>Today we're going to cover one of the most widely used online platforms for sharing code, documentation, and multimedia visualizations all in one interactive notebook. If you've ever wanted to streamline your collaborative process, house code and accompanying documentation in one space, or outsource the computational lifting to a second machine, keep reading.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Jupyter Notebook is an open-source web application used to <strong>create and share</strong> documents that have <strong>live code, equations, visualizations, and text</strong>. It&#8217;s maintained by the Project Jupyter community. In 2014, Project Jupyter and Jupyter Notebook became spin-off projects from IPython and the IPython Notebook.</p><p>Jupyter Notebooks are document-centric and feature a simple and clear user interface. For this reason, they are very popular; there are over <strong><a href="https://blog.jetbrains.com/datalore/2020/12/17/we-downloaded-10-000-000-jupyter-notebooks-from-github-this-is-what-we-learned/">9 million</a></strong> notebooks available on GitHub. These notebooks are used for a variety of things including:</p><ul><li><p><a href="https://www.educative.io/blog/python-pandas-tutorial?eid=5082902844932096">Data analysis</a></p></li><li><p><a href="https://www.educative.io/blog/what-is-data-cleaning?eid=5082902844932096">Data cleaning</a></p></li><li><p><a href="https://www.educative.io/blog/d3js-tutorial?eid=5082902844932096">Data visualization</a></p></li><li><p><a href="https://www.educative.io/blog/become-machine-learning-engineer-free?eid=5082902844932096">Machine learning</a></p></li><li><p>And much more!</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wIwt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wIwt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 424w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 848w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wIwt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png" width="1456" height="600" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:952861,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wIwt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 424w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 848w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!wIwt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F48278c34-b699-4b45-8fb7-4b0d809b814d_2794x1152.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This edition of <em>Grokking Python</em> will walk you through:</p><ul><li><p>Why you may want to use a web-based interface like Jupyter Notebook</p></li><li><p>What the setup process entails</p></li><li><p>How to get the most out of it</p></li></ul><p></p><h2>Why bother with Jupyter Notebooks?</h2><p>There are other solutions for collaborative coding, like Microsoft's Code Spaces, but Jupyter Notebooks are the standard computational notebook for data management. If you've never used an online service for sharing code or documentation you may be at a loss as to why you may need something like this.</p><p>While we typically spotlight Python-specific technologies on Grokking Python, it is worth noting that Jupyter Notebooks support over 40 languages, including all those most commonly used.</p><p>Here are just a few other reasons that Jupyter Notebooks are great:</p><ul><li><p><strong>Live coding environments</strong>: Code can be changed and run in real-time with feedback provided directly in the browser</p></li><li><p><strong>Interactive output: </strong>Code can produce rich output like HTML, LaTeX, images, and videos</p></li><li><p><strong>Sharing capabilities: </strong>You can share your notebooks with others using email, Dropbox, GitHub, or Jupyter Notebook Viewer</p></li><li><p><strong>Documentation: </strong>Notebooks support Markdown in text cells and feature inline output</p></li><li><p><strong>Satellite computing: </strong>Notebooks are ideal for those who want to perform computationally heavy tasks remotely from a lightweight machine</p></li></ul><h2>Getting started with Jupyter Notebook</h2><p>Unless you've specifically included it when setting up your current IDE or code editor, you'll need to install Jupyter.</p><p>This can be done a couple of ways, but the easiest is via pip, Python's own package installer.</p><pre><code>$ pip install jupyter</code></pre><blockquote><p><strong>It&#8217;s worth noting</strong>: If you already have the Python data science platform <strong>Anaconda</strong> installed, it comes with Jupyter Notebook, so you're ready to go.</p></blockquote><p>If you just want to try using a notebook without going through the installation process, you can visit <a href="http://www.jupyter.org/try">www.jupyter.org/try</a>. Just select the "Jupyter Notebook" button and you'll be treated to a tutorial of Jupyter Notebooks and the IPython kernel classic interface.</p><p></p><h3>Setting up the server</h3><p>The <strong>Jupyter Notebook</strong> web application is intended for a <strong>single user</strong> running a public server to access their machine remotely. Allowing multiple users to access the same notebook server may result in commands overwriting one another. That said, you can create a <strong>multi-user server</strong> using <strong>JupyterHub.</strong> (More on this later!)</p><p>All we need to do to set up the server is create a new folder and then go to that folder location in our terminal. Then, we can run this command to start Jupyter:</p><pre><code>$ jupyter notebook</code></pre><p>This command will open your default browser to the Jupyter Notebook server. Now we can create our very first notebook. More detailed information on the configuration process for Jupyter can be found in the <a href="https://jupyter-notebook.readthedocs.io/en/stable/public_server.html">Jupyter Notebook documentation</a>.</p><p></p><h3>Creating a new notebook</h3><p>Creating a new notebook is as simple as selecting "New" from the "File" drop down menu.</p><p>A fresh notebook should look something like this.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vUaL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vUaL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 424w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 848w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 1272w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vUaL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png" width="1456" height="885" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/a727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:885,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vUaL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 424w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 848w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 1272w, https://substackcdn.com/image/fetch/$s_!vUaL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa727b6bd-f918-4f39-9a9d-7e2a28f078c1_1600x972.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot taken from the jupyter.org/try tutorial</figcaption></figure></div><p>You'll notice that the first few dropdown menus, "<code>File</code>", "<code>Edit</code>", "<code>View</code>", and "<code>Insert</code>", are fairly standard and do just what you'd expect.&nbsp;</p><ul><li><p><strong>File</strong>: the place to create new notebooks and load old ones</p></li><li><p><strong>Edit:</strong> allows you to manipulate cells</p></li><li><p><strong>View: </strong>toggles headers, toolbars, and line numbers</p></li></ul><p>The next few are slightly different.</p><ul><li><p><strong>Run</strong>: runs selected cells</p></li><li><p><strong>Kernel: </strong>controls the execution of the code</p></li><li><p><strong>Settings: </strong>changes the theme or language</p></li><li><p><strong>Help: </strong>offers tutorials and reference material</p></li></ul><p></p><h3>Jupyter Notebooks in action</h3><p>Below is an image that showcases the simplicity of combining code with documentation in a Jupyter Notebook.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FHf3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FHf3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 424w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 848w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 1272w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FHf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png" width="1456" height="996" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:996,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FHf3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 424w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 848w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 1272w, https://substackcdn.com/image/fetch/$s_!FHf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffd71b-9d04-4779-b1b6-2b0cad3a17b4_1600x1094.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Jupyter Notebook enables a rudimentary form of <strong>version control</strong> by offering "<strong>checkpoints</strong>." You can save and load checkpoints that revert your notebook to earlier iterations.</p></blockquote><p>The two main cell types in a notebook are code and Markdown, but there is an option for raw text if you prefer.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NLQr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NLQr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 424w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 848w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 1272w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NLQr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png" width="528" height="138" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:138,&quot;width&quot;:528,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7650,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NLQr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 424w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 848w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 1272w, https://substackcdn.com/image/fetch/$s_!NLQr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8c82751-5d4e-4c48-a4a7-9f793040426b_528x138.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Adding new cells is as simple as navigating to an existing cell and pressing the leftmost icon of the group. </p><ul><li><p>The arrow icons allow you to move cells up and down in the notebook</p></li><li><p>The two icons to the right insert a cell above and below the current, respectively</p></li><li><p>And the trash can icon deletes the current cell</p></li></ul><p></p><h3>Sharing your notebook</h3><p>Jupyter comes with a built-in file conversion tool called <code>nbconvert</code>. This tool allows you to convert a <code>.ipynb </code>notebook into different file formats. File formats available for conversion include:</p><ul><li><p>Markdown</p></li><li><p>PDF</p></li><li><p>WebPDF</p></li><li><p>LaTeX</p></li><li><p>HTML</p></li><li><p>Reveal.js HTML slideshow</p></li><li><p>ReStructured Text</p></li><li><p>Python script</p></li><li><p>Ascii</p></li><li><p>executable script</p></li><li><p>Other notebook formats</p></li></ul><p>To use <code>nbconvert</code>:</p><ul><li><p>Open up the terminal</p></li><li><p>Go to the folder with the notebook to be converted</p></li><li><p>Run the command</p></li></ul><p>The command to convert looks like this:</p><pre><code>$ jupyter convert &lt;input notebook&gt; --to &lt;output format&gt;</code></pre><p>Once converted, the notebook can be shared however you choose!</p><h3>JupyterHub</h3><p>Briefly mentioned earlier, JupyterHub is another offering from Project Jupyter. JupyterHub is a <strong>multi-user version</strong> of Jupyter Notebook. It brings the convenience and power of notebooks to teams, classrooms, and labs.&nbsp;</p><p>JupyterHub is often used by educators as it provides an excellent interface for meshing sample code with supporting explanations. It creates a central and transparent location for notes and assignments.&nbsp;</p><p>In a professional setting, the hub allows you to deploy your notebooks to your organization, scale your deployment with <a href="https://www.educative.io/blog/docker-kubernetes-beginners-guide?eid=5082902844932096">Docker and Kubernetes</a>, and provide uniform data management and access within your company.&nbsp;</p><p></p><h3>What to do next with Jupyter Notebooks and Python</h3><p>Hopefully you found this information helpful! Jupyter Notebooks are some of the most popular computational notebooks out there. They are commonly used in data science and machine learning, so if you're currently working in those fields or even just find yourself interested in them, Jupyter is a powerful resource to know.&nbsp;</p><p>If your data science or machine learning work requires something a little more capable and maybe a touch more involved, their newer service is <strong>JupyterLab</strong>. JupyterLab is a web-based IDE for Jupyter Notebooks. It can run terminals, text editors and supports the creation of custom plugins.&nbsp;</p><p>Data science and machine learning are both highly in-demand fields, and Python is an extremely popular language for both. If you want to learn how to get some experience under your belt, we have compiled a list of the most popular <a href="https://www.educative.io/blog/python-libraries-for-data-science-and-machine-learning?eid=5082902844932096">Python libraries for data science and machine learning</a>.</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python lists vs sets vs tuples: A showdown between 3 essential data types]]></title><description><![CDATA[Review these fundamental Python data structures that every dev should know]]></description><link>https://www.grokkingpython.com/p/python-lists-vs-sets-vs-tuples-a</link><guid isPermaLink="false">https://www.grokkingpython.com/p/python-lists-vs-sets-vs-tuples-a</guid><dc:creator><![CDATA[The Educative Team]]></dc:creator><pubDate>Thu, 18 Aug 2022 14:00:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5mLf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey Grokking Python readers!</p><p>Welcome to a fresh edition of the newsletter! We hope you loved our earlier fun and humorous publication,<a href="https://medium.com/pythoneers/9-ways-learning-python-is-like-getting-a-pet-python-bfd1fb7e3efc"> </a><strong><a href="https://medium.com/pythoneers/9-ways-learning-python-is-like-getting-a-pet-python-bfd1fb7e3efc">9 ways learning Python is like getting a pet python</a>! </strong>Today we will return to some basics of Python and learn more about essential data structures.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you already consider yourself a Python-fluent individual or guru, you may feel you have all the important data structures right at your fingertips. And that's great! If you don&#8217;t, then don&#8217;t worry, this edition is here to help you learn or refresh your memory.&nbsp;</p><p>In Python, built-in data structures help us hold a collection of different elements. Today, we will explore three of these data structures: lists, sets, and tuples. We will share some code samples and also explore some similarities and differences among these data structures.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5mLf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5mLf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5mLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png" width="1024" height="512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45814,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5mLf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!5mLf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8bf591-3557-4747-9034-da8f004f9399_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Python lists</strong></h2><p>In Python, a list is a built-in data structure containing a collection of different items such as integers, characters, variables, etc. Let's dive straight into an example to help us understand a Python list better.&nbsp;</p><p>We'll create a list of four seasons in the year. We'll also follow syntax rules by ensuring that we are enclosing our list elements in square brackets <code>[ ]</code> and separating each element with a comma.&nbsp;</p><p><code>seasons_list = [ 'spring', 'summer', 'fall', 'winter']</code><br><br>List elements have two main characteristics: they <strong>are ordered</strong>, and they also <strong>allow duplicates</strong>. This means that we can repeat an element <em>twice</em> if we want to.&nbsp;</p><p>We can also perform fancier functions like iterating, accessing, modifying, and removing elements from lists. Let's learn by example:</p><h3><strong>Iterating over list elements</strong></h3><p>Here&#8217;s what the code would look like:</p><p><code>for season in seasons_list:<br>&nbsp; &nbsp; print(season)</code><br><br><strong>Output</strong>:<code><br>spring<br>summer<br>fall<br>winter</code></p><h3><strong>Modifying list elements</strong>&nbsp;</h3><p>Because lists are mutable, we can modify elements within them. This implies we can add, remove, and change elements. For instance, <code>append()</code> will allow us to add a new element to the end of the list.</p><p><code>seasons_list.append('snow')<br>print(seasons_list)<br></code><br><strong>Output</strong>:<br><code>spring<br>summer<br>fall<br>winter<br>snow</code></p><h3><strong>Accessing elements</strong>&nbsp;</h3><p>We can use an index position to access an element from a list. By default, all index positions start at <code>0</code>, not <code>1</code>. For example, to access <code>summer</code> from the list, we will need to query using <code>1</code> to get the desired output:</p><p><code>print(seasons_list_list[1])</code></p><p><br><strong>Output</strong>:<br><code>summer</code></p><h2><strong>Sets&nbsp;</strong></h2><p>Sets, like lists, are built-in data structures in Python that hold various elements. Like their list counterparts, we can perform various functions on sets, too. But the key distinguishing feature of sets is that they are <strong>unordered</strong>, <strong>do not allow duplicate values</strong>, and are enclosed in curly braces <code>{}</code><strong>.</strong>&nbsp;</p><p>Let's run through a few examples:&nbsp;</p><h3><strong>Iterating over sets</strong></h3><p>Here&#8217;s what the code would look like:</p><p><code>seasons_set = { 'spring', 'summer', 'fall', 'winter'}<br>for season in seasons_set:<br>&nbsp; &nbsp; print(season)</code><br></p><p><strong>Output</strong>: <br><code>spring<br>winter<br>fall<br>summer</code></p><h3><strong>Modifying sets</strong></h3><p>Sets are <strong>mutable</strong>, implying we can add or remove elements. To add a single element, we can use the <code>add()</code> method, and to remove an element from a set, a <code>remove()</code><strong> </strong>method.</p><h4><strong>Adding an element</strong></h4><p><code>seasons_set = { 'spring', 'summer', 'fall', 'winter'}<br>seasons_set.add('foggy weather')<br>print(seasons_set)</code><br><br><strong>Output</strong>:<br><code>{'fall', 'summer', 'foggy weather', 'spring', 'winter'}</code></p><h4><strong>Removing an element</strong></h4><p><code>seasons_set = { 'spring', 'summer', 'fall', 'winter','foggy weather'}<br>seasons_set.remove('foggy weather')<br>print(seasons_set)</code><br><br><strong>Output</strong>:<br><code>{'winter', 'spring', 'summer', 'fall'}</code></p><p>Of course, you can do a lot more to work with sets, including popping items and more.&nbsp;</p><h2><strong>Tuples</strong></h2><p>A tuple is also a built-in data structure in Python similar to lists and sets but different in some ways. The main difference between a tuple and the other data structures is that tuple elements are enclosed in parentheses <code>()</code>. Elements are also separated by a comma.&nbsp;</p><p>Let's look at some examples of tuple data structures in action:&nbsp;</p><p><code>seasons_tuple = ('spring', 'summer', 'fall', 'winter')</code></p><p>In the example above, we listed a tuple with elements of the year's seasons. It should be noted that tuples <strong>are ordered</strong> and also <strong>allow duplicates</strong>.&nbsp;</p><h3><strong>Iterating over tuples</strong></h3><p>Here&#8217;s what the code would look like:</p><p><code>seasons_tuple = ('spring', 'summer', 'fall', 'winter')<br>for i in seasons_tuple:<br>&nbsp; &nbsp; print(i)</code><br><br><strong>Output</strong>: <br><code>spring<br>summer<br>fall<br>winter</code></p><h3><strong>Accessing tuple elements</strong></h3><p>Like lists and sets, tuples too can be accessed via index positions. Let's take a look at accessing a tuple below:&nbsp;</p><p><code>seasons_tuple = ('spring', 'summer', 'fall', 'winter')<br>print(seasons_tuple[2])</code><br><br><strong>Output</strong>: <br><code>fall</code></p><h2><strong>Differences and similarities</strong></h2><p>Now that we have touched on the basics of all three data structures, let's now look at some key differences and similarities between Python lists, sets, and tuples.&nbsp;</p><h3>Lists</h3><ul><li><p>Use square brackets []</p></li><li><p>Duplicates are allowed</p></li><li><p>Mutable</p></li><li><p>Ordered</p></li></ul><h3>Sets</h3><ul><li><p>Use curly braces { }</p></li><li><p>Duplicates are not allowed</p></li><li><p>Mutable</p></li><li><p>Unordered</p></li></ul><h3>Tuples</h3><ul><li><p>Use parentheses</p></li><li><p>Duplicates are allowed</p></li><li><p>Immutable</p></li><li><p>Ordered</p></li></ul><h2><strong>More on Python data structures</strong></h2><p>That's not all, though. We have just touched the surface of what you can do with tuples, sets, and lists. Python does have other in-built data structures, too, like dictionaries. To learn more about Python data structures and related topics, we encourage you to check out the following courses!&nbsp;</p><ul><li><p><strong><a href="https://www.educative.io/courses/data-structures-coding-interviews-python">Data Structures for Coding Interviews in Python</a></strong></p></li><li><p><strong><a href="https://www.educative.io/path/ace-python-coding-interview">Ace the Python Coding Interview</a></strong></p></li><li><p><strong><a href="https://www.educative.io/path/python-for-programmers">Python for Programmers</a></strong></p></li><li><p><strong><a href="https://www.educative.io/courses/python-101-interactively-learn-how-to-program-with-python-3">Python 101: Interactively learn how to program with Python 3</a></strong></p><p></p></li></ul><p>Additionally, learning Python can be fun! With the course <a href="https://www.educative.io/courses/learn-python-3-from-scratch">Learn Python 3 from Scratch</a>, you can learn the language <em>and</em> do fun things like making games!&nbsp;</p><p><em>As always, happy learning!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.grokkingpython.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Grokking Python! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>