<?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>Forem: Abu Bakar Siddik</title>
    <description>The latest articles on Forem by Abu Bakar Siddik (@bakar31).</description>
    <link>https://forem.com/bakar31</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%2F2235214%2Ffa7dcfd8-28b9-4cd9-8849-a1c0495cc770.jpeg</url>
      <title>Forem: Abu Bakar Siddik</title>
      <link>https://forem.com/bakar31</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bakar31"/>
    <language>en</language>
    <item>
      <title>Building Smarter, Smaller and Efficient AI Models: NVIDIA’s Minitron Approach</title>
      <dc:creator>Abu Bakar Siddik</dc:creator>
      <pubDate>Sat, 04 Jan 2025 17:02:11 +0000</pubDate>
      <link>https://forem.com/bakar31/building-smarter-smaller-ai-models-nvidias-minitron-approach-10i7</link>
      <guid>https://forem.com/bakar31/building-smarter-smaller-ai-models-nvidias-minitron-approach-10i7</guid>
      <description>&lt;p&gt;Large language models (LLMs) have transformed AI. They excel at reasoning, coding, and understanding language. But these models are huge, expensive to train, and need massive datasets. So, how can we create smaller, faster, and cheaper models that still perform well?  &lt;/p&gt;

&lt;p&gt;NVIDIA’s &lt;em&gt;Minitron Approach&lt;/em&gt; offers a clever solution. In their paper, &lt;em&gt;&lt;a href="https://arxiv.org/pdf/2408.11796" rel="noopener noreferrer"&gt;“LLM Pruning and Distillation in Practice: The Minitron Approach,”&lt;/a&gt;&lt;/em&gt; they explain how to shrink large models without losing their power—even when the original training data isn’t available. Let’s break down what makes this method so effective.  &lt;/p&gt;

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

&lt;h3&gt;
  
  
  Why Shrinking Models Matters
&lt;/h3&gt;

&lt;p&gt;Big models like &lt;strong&gt;Llama-3.1-405B&lt;/strong&gt; require tons of data, time, and computing power to train. Not everyone can afford that. To save resources, many turn to &lt;strong&gt;pruning&lt;/strong&gt; and &lt;strong&gt;distillation&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pruning&lt;/strong&gt; cuts out less important parts of the model, like extra layers or neurons.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distillation&lt;/strong&gt; teaches a smaller “student” model to mimic the larger “teacher” model’s knowledge.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These techniques create smaller, faster, and more affordable models. But if you don’t have the original training data—common with proprietary models—things get tricky.  &lt;/p&gt;

&lt;h3&gt;
  
  
  NVIDIA’s Minitron Approach
&lt;/h3&gt;

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

&lt;p&gt;NVIDIA enhances pruning and distillation with three key steps, making it possible to compress models even without the original data.  &lt;/p&gt;

&lt;h4&gt;
  
  
  1. Teacher Correction
&lt;/h4&gt;

&lt;p&gt;Before teaching, the “teacher” model is fine-tuned on a new dataset. This small adjustment helps it better match the task at hand, ensuring it gives more accurate guidance to the smaller model.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How it works:&lt;/strong&gt; Fine-tunes the teacher using around 100 billion tokens.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Adapts the teacher to the new dataset, boosting the smaller model’s performance.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Structured Pruning
&lt;/h4&gt;

&lt;p&gt;Instead of removing random bits, NVIDIA uses &lt;strong&gt;structured pruning&lt;/strong&gt; to cut out entire sections, like layers or dimensions, in two ways:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Depth Pruning:&lt;/strong&gt; Removes entire layers, speeding up the model significantly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Width Pruning:&lt;/strong&gt; Reduces dimensions within layers, balancing accuracy and speed.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NVIDIA uses a small dataset to calculate which parts of the model are least important and safe to prune.  &lt;/p&gt;

&lt;h4&gt;
  
  
  3. Knowledge Distillation
&lt;/h4&gt;

&lt;p&gt;After pruning, the student model learns from the corrected teacher using a method called &lt;strong&gt;logit-based distillation&lt;/strong&gt;. This involves aligning the student’s outputs with the teacher’s, and recovering accuracy lost during pruning.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Key Results
&lt;/h3&gt;

&lt;p&gt;NVIDIA tested the Minitron Approach on two models:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mistral NeMo 12B → MN-Minitron-8B&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outperformed the original model in reasoning tasks like GSM8K and HumanEval.
&lt;/li&gt;
&lt;li&gt;Used 40× fewer training tokens (380B vs. 15T).
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Llama 3.1 8B → Two 4B Variants&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Both pruned versions beat the original model on several benchmarks.
&lt;/li&gt;
&lt;li&gt;Used 150× fewer training tokens (94B vs. 15T).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Width-Pruned Variant:&lt;/strong&gt; Better accuracy.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth-Pruned Variant:&lt;/strong&gt; Faster inference speeds. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Speed and Efficiency
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Depth Pruning:&lt;/strong&gt; Speeds up inference by up to 2.7×—great for real-time use.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Width Pruning:&lt;/strong&gt; Offers a 1.8× speed-up while preserving better accuracy.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token Savings:&lt;/strong&gt; Requires far fewer training tokens than starting from scratch.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Future of AI Efficiency
&lt;/h3&gt;

&lt;p&gt;NVIDIA has set a new standard with the Minitron Approach. By combining teacher correction, structured pruning, and knowledge distillation, they’ve shown it’s possible to build smaller models that compete with larger ones.  &lt;/p&gt;

&lt;p&gt;As demand for lightweight, cost-effective AI grows, innovations like these will shape the future of AI development and deployment.  &lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>The Art of Naming in Programming: Why Good Names Matter!</title>
      <dc:creator>Abu Bakar Siddik</dc:creator>
      <pubDate>Wed, 18 Dec 2024 18:57:10 +0000</pubDate>
      <link>https://forem.com/bakar31/the-art-of-naming-in-programming-why-good-names-matter-5951</link>
      <guid>https://forem.com/bakar31/the-art-of-naming-in-programming-why-good-names-matter-5951</guid>
      <description>&lt;p&gt;Hey there, fellow Programmers! Let's talk about something we all do but rarely think about: naming our code. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why Names Are Your Code's First Impression
&lt;/h2&gt;

&lt;p&gt;Imagine walking into a room where everything is labeled with "thing1", "thing2", "thing3". Confusing, right? That's exactly how bad code names feel to other developers.&lt;/p&gt;

&lt;p&gt;Here's a terrible example:&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, a better version:&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_rectangle_area&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;See the difference? The second version tells you exactly what's happening.&lt;/p&gt;

&lt;h2&gt;
  
  
  Revealing Intent Matters
&lt;/h2&gt;

&lt;p&gt;Good names answer three key questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does this do?&lt;/li&gt;
&lt;li&gt;Why does it exist?&lt;/li&gt;
&lt;li&gt;How will it be used?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's look at a real-world example:&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;# Bad: Unclear purpose
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&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;item&lt;/span&gt; &lt;span class="o"&gt;&amp;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;result&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;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;

&lt;span class="c1"&gt;# Better: Clear and intentional
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;filter_positive_numbers&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number_list&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;number_list&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;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;h2&gt;
  
  
  Avoiding the Naming Pitfalls
&lt;/h2&gt;

&lt;p&gt;Common mistakes to dodge:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cryptic Abbreviations&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Avoid
&lt;/span&gt;&lt;span class="n"&gt;usr_cnt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Prefer
&lt;/span&gt;&lt;span class="n"&gt;user_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Meaningless Variations&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Confusing
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user_info&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user_data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user_details&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Clear
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user_profile&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Single-Letter Names&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Bad
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;

&lt;span class="c1"&gt;# Good
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_average_rate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;total_hours&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number_of_projects&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;total_revenue&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total_hours&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;number_of_projects&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Practical Naming Guidelines
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Classes&lt;/strong&gt;: Use nouns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions&lt;/strong&gt;: Use verbs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variables&lt;/strong&gt;: Be specific&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constants&lt;/strong&gt;: ALL_UPPERCASE
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Great naming example
&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CustomerAccount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;MAX_WITHDRAWAL_LIMIT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5000&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_monthly_interest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.05&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Context is King
&lt;/h2&gt;

&lt;p&gt;Names should make sense in their environment. A variable like &lt;code&gt;state&lt;/code&gt; could mean anything. But &lt;code&gt;customer_state&lt;/code&gt; or &lt;code&gt;order_processing_state&lt;/code&gt; is crystal clear.&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;# Unclear
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;span class="c1"&gt;# Clear
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_order_processing_state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Golden Rules
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Be consistent&lt;/li&gt;
&lt;li&gt;Be descriptive&lt;/li&gt;
&lt;li&gt;Keep it simple&lt;/li&gt;
&lt;li&gt;Think about the next developer (maybe future you!)&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Naming isn't just typing words. It's communication. You're telling a story with your code. Make it a story others want to read.&lt;/p&gt;

&lt;p&gt;Your future self will thank you. Your teammates will thank you. Heck, even your computer might give you a virtual high-five✋.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>cleancode</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
