<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Moh</title>
    <description>The latest articles on DEV Community by Moh (@codingtides).</description>
    <link>https://dev.to/codingtides</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2713903%2F2c10724e-e3b3-4d9b-82e5-352d11fc36a4.png</url>
      <title>DEV Community: Moh</title>
      <link>https://dev.to/codingtides</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codingtides"/>
    <language>en</language>
    <item>
      <title>Learning Reflection Pig Latin Translator</title>
      <dc:creator>Moh</dc:creator>
      <pubDate>Tue, 22 Apr 2025 16:56:27 +0000</pubDate>
      <link>https://dev.to/codingtides/learning-reflection-pig-latin-translator-3jdf</link>
      <guid>https://dev.to/codingtides/learning-reflection-pig-latin-translator-3jdf</guid>
      <description>&lt;h1&gt;
  
  
  Building a Pig Latin Translator in Python
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Today, I decided to apply my Python knowledge to tackle the first project in &lt;em&gt;&lt;strong&gt;Impractical Python Projects&lt;/strong&gt;&lt;/em&gt;: building a Pig Latin translator. This challenge was a fun way to practice string manipulation, loops, and conditional logic. Below, I’ve shared my solution and compared it to the book’s version, reflecting on the differences and lessons learned.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Solution
&lt;/h2&gt;

&lt;p&gt;Here's the code I wrote for the Pig Latin translator:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;vowels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;e&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;i&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;u&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Please type a word to translate to pig latin (or type &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; to exit):&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Goodbye&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;

    &lt;span class="n"&gt;char_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;char_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;vowels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;yay&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;f_letter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;char_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;char_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f_letter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;char_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;ay&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How It Works:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I defined a list of vowels and used it to determine if the first letter was a vowel.&lt;/li&gt;
&lt;li&gt;If the word started with a vowel, I added &lt;code&gt;"yay"&lt;/code&gt; to the end.&lt;/li&gt;
&lt;li&gt;If it started with a consonant, I moved the first letter to the end and added &lt;code&gt;"ay"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The program allows users to input multiple words, exiting with &lt;code&gt;'q'&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Book Solution
&lt;/h2&gt;

&lt;p&gt;Here’s the solution provided in the book:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Turn a word into its Pig Latin equivalent.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;

&lt;span class="n"&gt;VOWELS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;aeiouy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type a word and get its Pig Latin translation: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;VOWELS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;pig_Latin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;way&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;pig_Latin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ay&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pig_Latin&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;try_again&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;Try again? (Press Enter else n to stop)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;try_again&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How It Works:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uses a string of vowels (&lt;code&gt;'aeiouy'&lt;/code&gt;) for simpler membership checks.&lt;/li&gt;
&lt;li&gt;Uses slicing (&lt;code&gt;word[1:]&lt;/code&gt;, &lt;code&gt;word[0]&lt;/code&gt;) for rearranging characters.&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;"way"&lt;/code&gt; if the word starts with a vowel.&lt;/li&gt;
&lt;li&gt;Uses the &lt;code&gt;sys&lt;/code&gt; module to cleanly exit and print to &lt;code&gt;stderr&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Reflection: Differences and Insights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Data Structure for Vowels&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mine&lt;/strong&gt;: List (&lt;code&gt;["a", "e", "i", "o", "u"]&lt;/code&gt;) – intuitive for me while practicing lists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book&lt;/strong&gt;: String (&lt;code&gt;'aeiouy'&lt;/code&gt;) – more concise and efficient.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Takeaway&lt;/strong&gt;: Strings work better for single-character membership checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Handling Translation Logic&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mine&lt;/strong&gt;: Converted the word to a list to manipulate characters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book&lt;/strong&gt;: Used slicing – more Pythonic and efficient.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Takeaway&lt;/strong&gt;: Avoid unnecessary data structure changes when strings suffice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Program Interaction&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mine&lt;/strong&gt;: Exit via typing &lt;code&gt;"q"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book&lt;/strong&gt;: Offers a retry prompt, exits cleanly with &lt;code&gt;sys.exit()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Takeaway&lt;/strong&gt;: Adding prompts enhances UX and polish.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep it simple&lt;/strong&gt;: The book’s version is shorter and more elegant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User experience matters&lt;/strong&gt;: A retry prompt improves flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore new tools&lt;/strong&gt;: Using modules like &lt;code&gt;sys&lt;/code&gt; opens up new possibilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project was a great way to practice problem-solving and reflect on different styles of coding. Going forward, I’ll aim for more concise and readable solutions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Tackling the Pig Latin translator was a rewarding hands-on exercise. Comparing my approach with the book’s gave me useful insights and highlighted areas where I can improve. I'm excited to continue working through more projects and leveling up my Python skills.&lt;/p&gt;




&lt;p&gt;Thanks for reading, and let’s see what the tide brings tomorrow!&lt;/p&gt;




&lt;h2&gt;
  
  
  Join Me on My Journey
&lt;/h2&gt;

&lt;p&gt;If you’d like to follow along, I’ll be sharing more about my learning process, projects, and insights here and on my &lt;a href="https://github.com/mohallahham/mytoolbox.git" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. Feel free to connect — I’d love to hear about your coding journey too!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>beginners</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Python Progress: Lists, Logic, and Building Interactive Tools</title>
      <dc:creator>Moh</dc:creator>
      <pubDate>Thu, 20 Feb 2025 07:30:27 +0000</pubDate>
      <link>https://dev.to/codingtides/python-progress-lists-logic-and-building-interactive-tools-1m64</link>
      <guid>https://dev.to/codingtides/python-progress-lists-logic-and-building-interactive-tools-1m64</guid>
      <description>&lt;h4&gt;
  
  
  Introduction
&lt;/h4&gt;

&lt;p&gt;Learning Python is like peeling an onion—every layer reveals something new, exciting, and occasionally tear-inducing (hello, off-by-one errors). Over the past week, I’ve delved deeper into lists, slicing, the &lt;code&gt;range()&lt;/code&gt; function, conditional logic with &lt;code&gt;if&lt;/code&gt; statements, and the powerful &lt;code&gt;zip()&lt;/code&gt; function. Alongside learning PEP 8 and using Ruff as a linter, I also started building interactive tools and tackling challenges from &lt;em&gt;Impractical Python Projects&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;These experiences have deepened my understanding of Python and emphasized the importance of writing clear, maintainable code.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lists: Flexible and Fun (Most of the Time)
&lt;/h4&gt;

&lt;p&gt;Lists continue to impress me with their versatility. Whether I’m appending items or removing them with &lt;code&gt;pop()&lt;/code&gt;, I’m starting to see how lists play a central role in many of the tools I want to build.&lt;/p&gt;

&lt;h5&gt;
  
  
  Slicing and Range
&lt;/h5&gt;

&lt;p&gt;I’ve also explored slicing, which makes accessing subsets of data intuitive—except when I forget that Python starts counting at zero. Combining slicing with &lt;code&gt;range()&lt;/code&gt; has been a game changer for generating sequences and working with lists dynamically. It’s elegant, but the occasional off-by-one error keeps me on my toes.&lt;/p&gt;

&lt;h5&gt;
  
  
  List Comprehensions: Strange but Powerful
&lt;/h5&gt;

&lt;p&gt;When I first encountered list comprehensions, they felt backward—why put the variable before the value? But after a bit of practice, I’ve realized their true power. For example, I can now condense a multi-line loop into a single line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;squares&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;List comprehensions have started to feel like a Python superpower. They simplify tasks like filtering data or transforming lists, and I’m excited to see how I can use them in future projects.&lt;/p&gt;




&lt;h4&gt;
  
  
  Adding Logic with If Statements
&lt;/h4&gt;

&lt;p&gt;Recently, I took my first steps into conditional logic with &lt;code&gt;if&lt;/code&gt; statements, adding a new dimension to my programs. I practiced scenarios like checking if a list is empty, filtering data, and creating dynamic outputs.&lt;/p&gt;

&lt;p&gt;For example, splitting a list into odd and even numbers is now as simple as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;even_numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;odd_numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It’s empowering to see how these small decisions can lead to smarter, more interactive programs.&lt;/p&gt;




&lt;h4&gt;
  
  
  Exploring the Zip Function
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;zip()&lt;/code&gt; function has been a revelation. This tool allows me to combine multiple lists into pairs or tuples, creating a more structured way to work with related data.&lt;/p&gt;

&lt;p&gt;For instance, pairing grades with their numeric values felt effortless using &lt;code&gt;zip&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;grades&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;A&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;B&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;summary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grades&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Output: [(90, 'A'), (85, 'B'), (78, 'C')]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This concise approach integrates neatly into real-world tasks like summaries or comparisons. It’s also a reminder of how Python’s built-in functions simplify everyday programming challenges.&lt;/p&gt;




&lt;h4&gt;
  
  
  Following PEP 8 with Ruff
&lt;/h4&gt;

&lt;p&gt;PEP 8, Python’s style guide, lays out conventions for writing clean and consistent code. As I’ve started applying these standards, I’ve realized how they make code easier to read and collaborate on. From proper indentation to descriptive variable names, PEP 8 is a helpful blueprint for maintainable Python projects.&lt;/p&gt;

&lt;p&gt;To enforce these guidelines, I’ve been using Ruff, a fast and lightweight linter. Ruff not only identifies style violations but also provides suggestions for improvement. For example, it’s helped me catch redundant imports, ensure consistent whitespace, and write cleaner list comprehensions.&lt;/p&gt;

&lt;p&gt;Here’s a quick example of how Ruff keeps my code in check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Before Ruff's suggestions
&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# After applying Ruff's recommendations
&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This process has not only improved the quality of my code but also taught me to appreciate the importance of clean formatting.&lt;/p&gt;




&lt;h4&gt;
  
  
  Building My First Interactive Tool
&lt;/h4&gt;

&lt;p&gt;With my new skills, I decided to create a tool that ties everything together. The program generates a list of random numbers and lets users interact with it through several features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generate Random Numbers&lt;/strong&gt;: Create a list of 10 numbers between 1 and 100.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split into Odd and Even&lt;/strong&gt;: Detect and separate odd and even numbers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Convert to Grades&lt;/strong&gt;: Map numbers to a letter grading scale (A-F).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarize Grades&lt;/strong&gt;: Pair each number with its grade using the &lt;code&gt;zip()&lt;/code&gt; function.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a snippet of the program in action:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;Do&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;want&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;split&lt;/span&gt; &lt;span class="n"&gt;into&lt;/span&gt; &lt;span class="n"&gt;odd&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;even&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;This&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;even&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;This&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;odd&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;73&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;Do&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;want&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;convert&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt; &lt;span class="n"&gt;grading&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;This&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;our&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;grading&lt;/span&gt; &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;B&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;A&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;D&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;F&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;Do&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;want&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;summary&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="nb"&gt;all&lt;/span&gt; &lt;span class="n"&gt;grades&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;scored&lt;/span&gt; &lt;span class="mi"&gt;73&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;scored&lt;/span&gt; &lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;scored&lt;/span&gt; &lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creating this program taught me how to use loops, conditionals, and list comprehensions together. It also showed me where I can improve, like handling invalid user inputs and modularizing my code with functions.&lt;/p&gt;




&lt;h4&gt;
  
  
  The To-Do App Debate: Resolved
&lt;/h4&gt;

&lt;p&gt;For days, I debated whether to start building a To-Do app as my first substantial project or wait until I’ve mastered more concepts like loops and functions. After creating this interactive tool, I realized that waiting for “perfect” knowledge would hold me back.&lt;/p&gt;

&lt;p&gt;Instead, I’ve decided to tackle projects now and use them as opportunities to learn along the way. My next step is to dive into &lt;em&gt;Impractical Python Projects&lt;/em&gt; and implement a real-world challenge. This will supplement my learning with practical problem-solving while also giving me the freedom to experiment.&lt;/p&gt;




&lt;h4&gt;
  
  
  Reflections
&lt;/h4&gt;

&lt;p&gt;Balancing structured learning with practical exploration has been one of the most rewarding challenges of this journey. Implementing projects like the interactive tool and tools involving &lt;code&gt;zip()&lt;/code&gt; reminds me that programming is best learned by doing.&lt;/p&gt;

&lt;p&gt;If you’re learning Python, I highly recommend exploring PEP 8, trying out a linter like Ruff, and starting small projects to consolidate your knowledge. These small steps will greatly improve your coding skills and make your projects shine.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thanks for reading, and let’s see what the tide brings tomorrow!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Join Me on My Journey
&lt;/h2&gt;

&lt;p&gt;If you’d like to follow along, I’ll be sharing more about my learning process, projects, and insights here and on my &lt;a href="https://github.com/mohallahham/mytoolbox.git" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. Feel free to connect — I’d love to hear about your coding journey too!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>100daysofcode</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My Python Journey: From Zen to Lists</title>
      <dc:creator>Moh</dc:creator>
      <pubDate>Sat, 18 Jan 2025 12:33:15 +0000</pubDate>
      <link>https://dev.to/codingtides/my-python-journey-from-zen-to-lists-2dmp</link>
      <guid>https://dev.to/codingtides/my-python-journey-from-zen-to-lists-2dmp</guid>
      <description>&lt;p&gt;Welcome to my very first post! I’m excited to begin documenting my journey of learning to code, sharing projects, and growing along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Started This Journey
&lt;/h2&gt;

&lt;p&gt;Hi, I’m a husband, a father of three, and a full-time professional working with data. My day-to-day involves a lot of qualitative and quantitative analysis, and I’ve decided to reignite my passion for coding to expand my skill set. Learning Python has been an exciting step forward in blending my professional expertise with new problem-solving techniques.&lt;/p&gt;

&lt;p&gt;This blog is part of how I internalize the concepts I’m learning while sharing my journey with others who might also be exploring Python.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Zen of Python: A Philosophy to Code By
&lt;/h2&gt;

&lt;p&gt;One of the first things I encountered on this journey was the &lt;strong&gt;“Zen of Python,”&lt;/strong&gt; a set of principles encapsulating Python’s design philosophy. Two lines in particular stood out to me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Simple is better than complex.”&lt;/p&gt;

&lt;p&gt;“Readability counts.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As someone who thrives on clarity and efficiency in data analysis, I find this approach to programming intuitive. Python encourages writing code that’s not just functional but also understandable for others and even your future self!&lt;/p&gt;




&lt;h2&gt;
  
  
  Learning the Basics: Variables, Arithmetic, and Lists
&lt;/h2&gt;

&lt;p&gt;Starting with the basics was like revisiting an old friend from college. Assigning values to variables felt natural, and working with arithmetic operators reminded me how much power lies in simple expressions. But it wasn’t all smooth sailing — discovering that &lt;code&gt;0.1 + 0.2 != 0.3&lt;/code&gt; (thanks to floating-point precision quirks) was a reminder that even simple concepts can have layers of complexity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Experimenting with Text Manipulation
&lt;/h2&gt;

&lt;p&gt;One of the most satisfying exercises so far has been working with text. I’ve played around with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Converting names to uppercase, lowercase, and titlecase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cleaning up strings with &lt;code&gt;strip()&lt;/code&gt; to remove unnecessary spaces.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These small manipulations might seem trivial, but they’ve shown me how powerful Python is for transforming messy input into polished output — something that has practical applications in data preprocessing and presentation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Quote Debate
&lt;/h2&gt;

&lt;p&gt;A fun discovery was that Python doesn’t care whether I use single quotes (&lt;code&gt;'&lt;/code&gt;) or double quotes (&lt;code&gt;"&lt;/code&gt;). They both work equally well for strings. For now, I’ve settled on single quotes because I don’t want to press the shift key (yes, a valid reason, I know!). However, I’ll be using triple quotes when working with embedded quotes. This is one of those stylistic choices that will probably evolve as I write more code.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next: Loops and Control Flow
&lt;/h2&gt;

&lt;p&gt;While I’m enjoying lists and text manipulation, I can’t wait to learn about loops. Repeating tasks manually is fine for now, but learning how to automate these processes with &lt;code&gt;for&lt;/code&gt; and &lt;code&gt;while&lt;/code&gt; loops will be a game changer. Similarly, diving into control flow with &lt;code&gt;if&lt;/code&gt; statements will add logic to my programs, making them smarter and more responsive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reflections on the Process
&lt;/h2&gt;

&lt;p&gt;This journey is about more than learning Python. It’s about building a mindset of curiosity and problem-solving. Each concept I learn builds on the last, and every small milestone feels like progress. It’s been inspiring to see how Python’s simplicity and flexibility allow me to apply programming to both practical challenges and creative projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;For anyone starting their own Python journey, the best advice I’ve found—and am trying to live by—is to &lt;strong&gt;start small and keep building.&lt;/strong&gt; Whether it’s a basic script or a mini-project, every bit of progress adds up. I’m excited to keep learning, documenting, and sharing this journey.&lt;/p&gt;




&lt;p&gt;Thanks for reading, and let’s see what the tide brings tomorrow!&lt;/p&gt;




&lt;h2&gt;
  
  
  Join Me on My Journey
&lt;/h2&gt;

&lt;p&gt;If you’d like to follow along, I’ll be sharing more about my learning process, projects, and insights here and on my &lt;a href="https://github.com/mohallahham/mytoolbox.git" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. Feel free to connect — I’d love to hear about your coding journey too!&lt;/p&gt;

</description>
      <category>python</category>
      <category>100daysofcode</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
