<?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: Jeffrey Njoroge</title>
    <description>The latest articles on Forem by Jeffrey Njoroge (@jeffrey_njoroge_bb4aa64d7).</description>
    <link>https://forem.com/jeffrey_njoroge_bb4aa64d7</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%2F3709619%2F14c5a747-37f1-4d10-9b68-f92c9bf64ea2.png</url>
      <title>Forem: Jeffrey Njoroge</title>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jeffrey_njoroge_bb4aa64d7"/>
    <language>en</language>
    <item>
      <title>Joins and Window Functions</title>
      <dc:creator>Jeffrey Njoroge</dc:creator>
      <pubDate>Mon, 02 Mar 2026 16:24:11 +0000</pubDate>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7/joins-and-window-functions-2jkf</link>
      <guid>https://forem.com/jeffrey_njoroge_bb4aa64d7/joins-and-window-functions-2jkf</guid>
      <description>&lt;p&gt;Hello and welcome! If you're just starting your SQL journey, you've probably heard about Joins and Window Functions. They sound complicated, but don't worry - I'll explain everything in simple terms with plenty of examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1: Understanding Joins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What Are Joins?&lt;/p&gt;

&lt;p&gt;Imagine you have two separate notebooks:&lt;/p&gt;

&lt;p&gt;-** Notebook A**: Contains customer names and their IDs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Notebook B&lt;/strong&gt;: Contains customer orders with customer IDs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to see "which customer ordered what," you need to connect these notebooks. That's exactly what Joins do, they connect tables based on common information (like customer ID).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Real-Life Analogy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of joins like a wedding guest list:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table 1&lt;/strong&gt;: Guest names&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table 2&lt;/strong&gt;: Meal preferences&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Join&lt;/strong&gt;: Matching each guest to their meal choice using their name as the link&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Different Types of Joins&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. INNER JOIN&lt;/strong&gt; - "Show me matches only."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;INNER JOIN&lt;/strong&gt; is like inviting only couples who both RSVP'd. It shows only records that exist in both tables.&lt;/p&gt;

&lt;p&gt;Example Scenario: You want to see which customers have actually placed orders.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Find customers who have placed orders
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query shows ONLY customers who have at least one order. Customers without orders won't appear.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;2. LEFT JOIN *&lt;/em&gt;- "Show me everything from the left, and matching data from the right."&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;LEFT JOIN *&lt;/em&gt; keeps ALL records from the first (left) table, and shows matching data from the second table. If there's no match, you see NULL (empty).&lt;/p&gt;

&lt;p&gt;Example Scenario: You want to see ALL customers, even those who never ordered.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Show all customers and their orders (even if they have no orders)
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you'll see every customer. If a customer has no orders, the OrderDate column will be blank (NULL).&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;3. RIGHT JOIN *&lt;/em&gt;- The Opposite of LEFT JOIN&lt;br&gt;
Same as LEFT JOIN, but keeps ALL records from the right table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Show all orders and their customers
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. FULL OUTER JOIN&lt;/strong&gt; - "Show me everything, everywhere."&lt;br&gt;
Shows ALL records from both tables, matching where possible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Show all customers and all orders, regardless of matches
SELECT Customers.CustomerName, Orders.OrderDate
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. CROSS JOIN&lt;/strong&gt; - "Combine everything with everything"&lt;br&gt;
Creates all possible combinations between two tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Match every color with every product
SELECT Products.ProductName, Colors.ColorName
FROM Products
CROSS JOIN Colors;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Window Functions (Smart Calculations Without Losing Details)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Are Window Functions?&lt;/strong&gt;&lt;br&gt;
Imagine you have a list of students and their test scores. You want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See each student's score&lt;/li&gt;
&lt;li&gt;AND see the class average on the same row&lt;/li&gt;
&lt;li&gt;AND see each student's rank&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With regular SQL, this is tricky. But with Window Functions, it's easy! Window functions let you perform calculations across rows while keeping all your original data visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OVER()&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every window function uses &lt;strong&gt;OVER()&lt;/strong&gt;, think of it as saying "look at this group of rows."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.RANK() - Who's on Top?&lt;/strong&gt;&lt;br&gt;
Example: Rank employees by salary within their department&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    first_name,
    department,
    salary,
    RANK() OVER (PARTITION BY department ORDER BY salary DESC) as department_rank
FROM employees;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Simple Explanation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PARTITION BY department
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;means "reset the ranking for each department"&lt;/p&gt;

&lt;p&gt;ORDER BY salary DESC means "highest salary gets rank 1"&lt;/p&gt;

&lt;p&gt;The result shows each person AND their rank in one row&lt;/p&gt;

&lt;p&gt;Remember: Every SQL expert started exactly where you are now. The key is practice, curiosity, and building projects that interest you. Happy querying! that it forks !!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How Analysts Translate Messy Data, DAX, and Dashboards into Action Using Power BI 📊➡️🚀</title>
      <dc:creator>Jeffrey Njoroge</dc:creator>
      <pubDate>Sun, 08 Feb 2026 17:23:12 +0000</pubDate>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-pli</link>
      <guid>https://forem.com/jeffrey_njoroge_bb4aa64d7/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-pli</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Magic Behind the Screen: Your Data’s Journey from Chaos to Clarity 🧙‍♂️&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine As a retail manager, you face messy data daily: mismatched spreadsheets for sales, feedback, inventory, and deliveries 📈📊🗂️. Power BI transforms this chaos into a clear dashboard that shows what to reorder, which stores need help, and which promotions are winning 🎯—turning overload into action.&lt;/p&gt;

&lt;p&gt;Let’s break down how analysts use this tool to turn overwhelming information into actionable business decisions, even if you’re just starting your data journey 🚶‍♂️➡️🏃‍♂️.&lt;/p&gt;

&lt;p&gt;Step 1: Transforming Messy Data 🧹✨&lt;br&gt;
The Problem: Real-world data arrives in fragments—different formats, sources, and quality levels. A sales team logs deals in Salesforce, finance tracks invoices in Excel, and marketing measures campaigns through Google Analytics 🤯.&lt;/p&gt;

&lt;p&gt;The Power BI Solution: Analysts use Power Query (Power BI's data cleaning tool) to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 Combine these disparate sources&lt;/li&gt;
&lt;li&gt;✏️ Fix inconsistencies (like "NY," "New York," and "N.Y." all meaning the same thing)&lt;/li&gt;
&lt;li&gt;🗑️ Remove errors and duplicates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real-World Impact:&lt;br&gt;
A restaurant chain combined weather data ☁️, local event calendars 🎪, and historical sales to predict daily customer traffic. Result? They optimized staff schedules, reducing labor costs by 18% during slow periods while maintaining service during rushes 📉💰.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Creating Business Logic with DAX 💪📈&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Problem: Raw data alone doesn't answer business questions. How do you calculate year-over-year growth? Customer retention rates? Profit margins per product category 🤔?&lt;/p&gt;

&lt;p&gt;The Power BI Solution: DAX (Data Analysis Expressions) is Power BI’s formula language. Think of it as Excel formulas, but more powerful! Analysts create measures like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Profit = SUM(Sales[Revenue]) - SUM(Sales[Cost]) ➕➖

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Year-over-Year Growth = (This Year Sales - Last Year Sales) / Last Year Sales 📅➡️📅
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beginner-Friendly Tip: You don’t need to write DAX from scratch! Power BI offers quick measures that generate the formulas for you as you click through options 🖱️✨.&lt;/p&gt;

&lt;p&gt;Real-World Impact:&lt;br&gt;
An e-commerce company created a "customer lifetime value" DAX measure that identified their most profitable customer segments 🏆. They shifted marketing budget accordingly, increasing overall ROI by 34% 📊💸.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Building Intuitive Dashboards💡📱&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Problem: Even cleaned data with calculations remains inaccessible if it’s trapped in complex tables. Decision-makers need insights at a glance 👀.&lt;/p&gt;

&lt;p&gt;The Power BI Solution: Analysts design dashboards that tell visual stories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎯 Key Performance Indicators (KPIs) up top: Current sales vs. target&lt;/li&gt;
&lt;li&gt;📊 Interactive charts in the middle: Sales by region (click on a region to drill down 🔍)&lt;/li&gt;
&lt;li&gt;📋 Detailed tables at the bottom: Supporting data for context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real-World Impact:&lt;br&gt;
A healthcare provider created an emergency room dashboard showing patient wait times ⏱️, staff availability 👩‍⚕️, and treatment room status. Hospital administrators reduced average wait times by 22% by reallocating resources in real-time based on the dashboard insights 🏥✅.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: From Insight to Action – The Decision Loop 🔄⚡&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Closed Loop: Power BI’s real power emerges when dashboards don’t just inform decisions but trigger actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor 👀: A shipping company dashboard shows delivery delays spiking in the Midwest 🚚⚠️&lt;/li&gt;
&lt;li&gt;Analyze 🔍: Clicking through reveals the issue—a specific warehouse is understaffed 👷‍♂️❌&lt;/li&gt;
&lt;li&gt;Act ✅: The manager immediately reallocates staff from another location 🔄👷‍♀️&lt;/li&gt;
&lt;li&gt;Review 📈: Next week, the dashboard confirms normal operations have resumed 🟢&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Getting Started: Your First Small Win 🏁🎉&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don’t need to tackle company-wide data immediately. Try this beginner project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with one data source 📂 (your team’s Excel file)&lt;/li&gt;
&lt;li&gt;Ask one business question 🤔 (“How have our sales trends looked this quarter?”)&lt;/li&gt;
&lt;li&gt;Create one visual 📉 (a simple line chart showing sales over time)&lt;/li&gt;
&lt;li&gt;Share one insight 💬 (“Sales dip every Thursday—should we run Thursday promotions?”)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Big Picture: Data Democratization 🌍🤝&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When analysts master Power BI, they become translators between raw data and business strategy. They empower everyone—from executives to frontline employees—to make data-driven decisions 📊➡️🤝. The cashier 💁‍♂️, the warehouse manager 🏢, and the CEO 👔 all look at the same version of truth and can act accordingly.&lt;/p&gt;

&lt;p&gt;The next time you see a polished Power BI dashboard, remember the journey:&lt;br&gt;
Messy data 🗑️ → cleaned and combined 🧼 → enhanced with calculations 🧮 → visualized intuitively 🎨 → acted upon ✅ → measured again 🔄.&lt;/p&gt;

&lt;p&gt;This continuous cycle turns information from a burden into your organization’s most strategic asset 💎.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your Takeaway 🎁✨&lt;/strong&gt;&lt;br&gt;
Power BI skills aren’t about fancy charts or complex formulas—they’re about asking better questions and creating clearer answers. Whether you’re looking to reduce costs, increase revenue, or improve customer satisfaction, the path starts with transforming data into decisions 🛤️.&lt;/p&gt;

&lt;p&gt;And that’s a skill that begins with one dashboard, one insight, and one action at a time 🚀📊✅.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Mastering Data Modeling in Power BI</title>
      <dc:creator>Jeffrey Njoroge</dc:creator>
      <pubDate>Mon, 02 Feb 2026 06:48:30 +0000</pubDate>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7/mastering-data-modeling-in-power-bi-2133</link>
      <guid>https://forem.com/jeffrey_njoroge_bb4aa64d7/mastering-data-modeling-in-power-bi-2133</guid>
      <description>&lt;p&gt;A good Power BI report needs a strong &lt;strong&gt;data model&lt;/strong&gt;. The data model controls how fast it runs, if the math is right in the data, and how easy it is to use. This guide will teach you the basics of data modeling to help you build better &lt;strong&gt;reports&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Data Modeling Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before we diving in, let me show you where poor data model leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Slow&lt;/strong&gt; report performance and sluggish interactions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inaccurate&lt;/strong&gt; calculations and misleading insights&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex DAX formulas&lt;/strong&gt; that are hard to maintain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frustrated&lt;/strong&gt; business users who lose trust in the data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Meet the Two Key Players of data model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.📊 Fact Tables("What Happened")&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is your &lt;strong&gt;EVENT LOG&lt;/strong&gt;. It records things that happen.&lt;br&gt;
Think of it like a grocery receipt: It records actions &lt;strong&gt;(sales)&lt;/strong&gt; and numbers &lt;strong&gt;(quantity, price)&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| Date       | Product      | Quantity | Price |
|------------|--------------|----------|-------|
| Jan 10     | Apples       | 5        | $10   |
| Jan 10     | Bread        | 2        | $6    |
| Jan 11     | Apples       | 3        | $6    |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.📐 Dimension Tables ("Who/What/When")&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are your &lt;strong&gt;LOOKUP TABELS&lt;/strong&gt;. They &lt;strong&gt;describe things&lt;/strong&gt;.&lt;br&gt;
Think of them like product information sheets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product Table:
| ProductID | ProductName | Category | Color  |
|-----------|-------------|----------|--------|
| 1         | Apples      | Fruit    | Red    |
| 2         | Bread       | Bakery   | Brown  |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Date Table:
| DateID | Date       | Day   | Month | Year |
|--------|------------|-------|-------|------|
| 101    | Jan 10     | Monday| Jan   | 2024 |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we are done with the Two Key Players let look on the other players:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌟The Star Schema&lt;/strong&gt;&lt;br&gt;
This is Power BI's favorite way to organize data. It's called a "star" because it looks like one with a fact table at the center.&lt;/p&gt;

&lt;p&gt;example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;           [Date Dimension]
                ↓
[Product Dimension] → [Sales Fact Table] ← [Customer Dimension]
                ↑
        [Store Dimension]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key idea💡:&lt;/strong&gt; One central table &lt;strong&gt;(the fact table)&lt;/strong&gt; with all your measurement numbers, surrounded by descriptive tables (dimensions) that connect directly to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real Example: Coffee Shop Sales&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fact_Sales Table (The Main Counter):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| ReceiptID | DateID | ProductID | CustomerID | CupsSold | TotalPrice |
|-----------|--------|-----------|------------|----------|------------|
| 1001      | 20240115 | P101     | C205       | 2        | $8.50      |
| 1002      | 20240115 | P102     | C206       | 1        | $4.25      |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why Power BI Loves the star scheme🌟&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It thinks in stars&lt;/strong&gt; - Built to work best with this pattern&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster calculations&lt;/strong&gt; - Less "travel time" between tables&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easier DAX formulas&lt;/strong&gt; - Clearer relationships mean simpler code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better performance&lt;/strong&gt; - Optimized for this structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Snowflake Schema❄️&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a snowflake schema, your dimension tables get further split into more tables. It's called "snowflake" because when you draw it, the connections spread out like a snowflake's branches.&lt;/p&gt;

&lt;p&gt;example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Supplier Table] → [Category Table] → [Product Table] → [Sales]
                    ↓
               [Sub-Category Table]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;key idea💡: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product table connects to category table&lt;/li&gt;
&lt;li&gt;Category table connects to supplier table&lt;/li&gt;
&lt;li&gt;Each table specializes in one type of information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real Example: An Online Store&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dim_Product Table:
| ProductID | ProductName  | CategoryID | SupplierID |
|-----------|--------------|------------|------------|
| 101       | Blue T-Shirt | C1         | S5         |

Dim_Category Table:
| CategoryID | CategoryName |
|------------|--------------|
| C1         | Clothing     |

Dim_Supplier Table:
| SupplierID | SupplierName | CountryID |
|------------|--------------|-----------|
| S5         | TeeCo Inc    | USA1      |

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;When Might You See a Snowflake?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When connecting to existing databases (some are already built this way)&lt;/li&gt;
&lt;li&gt;When multiple fact tables share the same dimension (like having one Date table for Sales AND Inventory)&lt;/li&gt;
&lt;li&gt;When dimensions are extremely large (millions of rows
)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Relationships: How Your Data Tables "Talk" to Each Other&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of relationships in Power BI as introductions between your tables - they're how your data gets to know each other and work together!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-Life Example: Grocery Shopping&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RECEIPT (Fact table)
| ItemID | StoreID | Price |
|--------|---------|-------|
| 1      | 5       | $3.99 |

STORE LIST (Dimension table)  
| StoreID | StoreName | City     |
|---------|-----------|----------|
| 5       | FreshMart | Boston   |

ITEM LIST (Dimension table)
| ItemID | ItemName  | Category |
|--------|-----------|----------|
| 1      | Apples    | Fruit    |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Beginner's Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always use a Date table (Power BI needs this for time calculations)&lt;/li&gt;
&lt;li&gt;Keep it simple - star schema is usually best&lt;/li&gt;
&lt;li&gt;Name tables clearly: "Sales" not "Table1"&lt;/li&gt;
&lt;li&gt;Connect with single arrows (from dimension → fact table)&lt;/li&gt;
&lt;li&gt;Hide confusing columns from the report view&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't try to build the perfect model on day one. Start with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One fact table (your main event)&lt;/li&gt;
&lt;li&gt;Two dimension tables (Date + one other, like Product)&lt;/li&gt;
&lt;li&gt;Simple reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That all folks!! for any question leave a comment below and follow me on github:&lt;a href="https://github.com/JeffreyNjoroge" rel="noopener noreferrer"&gt;https://github.com/JeffreyNjoroge&lt;/a&gt; Happy learning!!&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Introduction to MS Excel for Data Analytics: Your First Step into Data</title>
      <dc:creator>Jeffrey Njoroge</dc:creator>
      <pubDate>Mon, 26 Jan 2026 06:36:57 +0000</pubDate>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7/introduction-to-ms-excel-for-data-analytics-your-first-step-into-data-32dj</link>
      <guid>https://forem.com/jeffrey_njoroge_bb4aa64d7/introduction-to-ms-excel-for-data-analytics-your-first-step-into-data-32dj</guid>
      <description>&lt;p&gt;Have you ever stared at a spreadsheet full of numbers and wondered what stories those numbers could tell? Or felt overwhelmed by sales figures, survey results, or expense reports? Welcome to the world of data analytics—and you might be surprised to learn that you probably already have the perfect tool to get started: Microsoft Excel.&lt;br&gt;
Excel isn't just for creating lists or basic budgets. It's a powerful, accessible gateway to understanding data.You can organize, explore, and uncover insights in data Here is how a excel looks like:&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%2Flgmlth3d5pxtx1usqdur.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%2Flgmlth3d5pxtx1usqdur.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Start with Excel?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before diving into complex software, Excel offers a familiar environment. Its grid of rows and columns is intuitive, and its most powerful features are hidden in plain sight, waiting to be used. For basic data analysis, Excel helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clean up messy data&lt;/strong&gt; (like removing duplicates or fixing formatting).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarize information quickly&lt;/strong&gt; (like finding totals, averages, or counts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spot patterns and trends&lt;/strong&gt; (seeing what's going up, down, or staying the same).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answer specific questions&lt;/strong&gt; (like "What was our best-selling product last quarter?").&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Your First Analytical Toolkit: Four Essential Excel Features&lt;/strong&gt;&lt;br&gt;
Let's break down the core features that turn Excel from a simple spreadsheet into an analysis engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sorting &amp;amp; Filtering:&lt;/strong&gt;&lt;br&gt;
Sorting lets you rearrange this list alphabetically, by date, or from highest to lowest value in one click. Filtering is like putting on a pair of glasses that only show you what you want to see—like all purchases from a specific city or all transactions above $100. It instantly hides the irrelevant data so you can focus. &lt;br&gt;
What you would see:&lt;/p&gt;

&lt;p&gt;When you select your data and go to the Data tab, you'll see these buttons:&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%2Fcsmwts8frgm4682p8az8.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%2Fcsmwts8frgm4682p8az8.png" alt=" " width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sort buttons look like &lt;strong&gt;A→Z&lt;/strong&gt; and &lt;strong&gt;Z→A&lt;/strong&gt; arrows. The &lt;strong&gt;Filter button&lt;/strong&gt; looks like a funnel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formulas: Excel’s Calculation Powerhouse&lt;/strong&gt;&lt;br&gt;
Formulas are how you ask Excel to do math for you. They start with an equals sign &lt;strong&gt;(=)&lt;/strong&gt;. Don't be intimidated! You only need a few to begin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;=SUM&lt;/strong&gt;: For example, &lt;strong&gt;=SUM(l2:l633)&lt;/strong&gt; - Adds up all numbers in cells l2 through l633.&lt;/li&gt;
&lt;/ul&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%2F5luhbztm9mwln74ge1nf.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%2F5luhbztm9mwln74ge1nf.png" alt=" " width="597" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;which gives a total of:&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%2Fspdegctudr6p44obt12l.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%2Fspdegctudr6p44obt12l.png" alt=" " width="477" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;=AVERAGE(l1:l633)&lt;/strong&gt;: Calculates the mean of those numbers,For example:&lt;/li&gt;
&lt;/ul&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%2Fd8vl9hifkmbcqgfsh3vx.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%2Fd8vl9hifkmbcqgfsh3vx.png" alt=" " width="610" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which gives a total off:&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%2Fpsm8pbw67dvnudhwaso3.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%2Fpsm8pbw67dvnudhwaso3.png" alt=" " width="475" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;=MAX(l2:l633)&lt;/strong&gt; or &lt;strong&gt;=MIN(l2:l633)&lt;/strong&gt;: Finds the highest or lowest value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;strong&gt;=MAX&lt;/strong&gt;&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%2Fyq9yeoy8jcrfsgaz43hr.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%2Fyq9yeoy8jcrfsgaz43hr.png" alt=" " width="529" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the answer is:&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%2Ftmg11875xxju3frdpst5.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%2Ftmg11875xxju3frdpst5.png" alt=" " width="464" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example 2:&lt;strong&gt;=min&lt;/strong&gt;&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%2Fx8xssd527wxqx8k63yo5.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%2Fx8xssd527wxqx8k63yo5.png" alt=" " width="490" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the answer is:&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%2F8o4c0saxnoekhw2sbs90.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%2F8o4c0saxnoekhw2sbs90.png" alt=" " width="472" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PivotTable Creation Process&lt;/strong&gt;&lt;br&gt;
This is Excel's most famous analytical tool, and for good reason. A PivotTable might sound complex, but think of it as a dynamic summary report you create by dragging and dropping.&lt;br&gt;
Got a year's worth of sales data? In minutes, you can use a PivotTable to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Break down sales by month and region.&lt;/li&gt;
&lt;li&gt;Compare product performance.&lt;/li&gt;
&lt;li&gt;Count how many transactions each salesperson made.&lt;/li&gt;
&lt;/ul&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%2F1p0vvz13ts443uhzwy7p.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%2F1p0vvz13ts443uhzwy7p.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Charts: Seeing the Story&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A picture is worth a thousand numbers. Excel’s charts transform rows of data into visual stories. A simple line chart can show a trend over time. A bar chart can compare different categories. Seeing your data visually often reveals patterns that are easy to miss in a table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Simple Analytics Workflow in Excel&lt;/strong&gt;&lt;br&gt;
Let's follow a real-world example. You have a list of a café's weekly sales.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clean:&lt;/strong&gt; Use Remove Duplicates and Text to Columns to ensure data is tidy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore:&lt;/strong&gt; Sort by "Revenue" to see the best-selling days. Filter to look at only weekend sales.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarize:&lt;/strong&gt; Use a PivotTable to calculate total revenue per beverage type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualize:&lt;/strong&gt; Create a pie chart from that PivotTable to see which drink is most popular.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask Questions:&lt;/strong&gt; Write a formula like =AVERAGE to find the average weekday sale, then compare it to the weekend average.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In 15 minutes, you've gone from a raw list to knowing your top product and your busiest times.&lt;/p&gt;

&lt;p&gt;The Bottom Line&lt;br&gt;
MS Excel is the most widely used data analytics tool in the world for a reason. It’s a forgiving, powerful playground where you can develop your analytical mindset—learning to ask questions of data and find answers. The skills you build here, from logical thinking to cleaning data, are the very foundation of all data analysis.&lt;/p&gt;

&lt;p&gt;You don't need to learn everything at once. &lt;strong&gt;Start small&lt;/strong&gt;. Open a dataset you care about, and try to answer one simple question using Sort or a single formula. You'll be amazed at what you can discover.&lt;/p&gt;

&lt;p&gt;Welcome to the start of your data journey!!!!!!!&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Git 101: Your Friendly Guide to Version Control</title>
      <dc:creator>Jeffrey Njoroge</dc:creator>
      <pubDate>Sun, 18 Jan 2026 08:37:18 +0000</pubDate>
      <link>https://forem.com/jeffrey_njoroge_bb4aa64d7/git-101-your-friendly-guide-to-version-control-4k61</link>
      <guid>https://forem.com/jeffrey_njoroge_bb4aa64d7/git-101-your-friendly-guide-to-version-control-4k61</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Version Control Anyway?&lt;/strong&gt;&lt;br&gt;
Imagine you're writing an important document. You save version after version: &lt;em&gt;essay.doc&lt;/em&gt;, &lt;em&gt;essay_final.doc&lt;/em&gt;, &lt;em&gt;essay_really_final.doc&lt;/em&gt;, &lt;em&gt;essay_NO_REALLY_FINAL_v2.doc&lt;/em&gt;. Sound familiar? Version control is like a time machine for your code that saves you from this chaos. Git is simply a tool that manages these versions for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Git Mindset: Your Project's Safety Net&lt;/strong&gt;&lt;br&gt;
Git creates a safety net for your projects by tracking every change. Made a change that broke everything? No problem—jump back to when it worked. Want to try a crazy idea? Create a separate "branch" to experiment without affecting the stable version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting Started: Your First Repository&lt;/strong&gt;&lt;br&gt;
A repository (or "repo") is just a fancy word for a project folder that Git is tracking.&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%2Fyd00lkkbscn4fturh88d.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%2Fyd00lkkbscn4fturh88d.png" alt=" " width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Three Stages of Git&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of Git having three areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Working Directory: Your actual file&lt;/li&gt;
&lt;li&gt;Staging Area: A "preview" of what you're about to save &lt;/li&gt;
&lt;li&gt;Repository: Where Git permanently stores your changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tracking Changes: The Basic Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Check Your Status&lt;/strong&gt;&lt;br&gt;
Always know what's happening:&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%2Fskv8t3923v5py2i5h1h5.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%2Fskv8t3923v5py2i5h1h5.png" alt=" " width="622" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows what files are modified, staged, or untracked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Add Changes to Staging&lt;/strong&gt;&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%2F5e0s1mw9r3252vwos15b.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%2F5e0s1mw9r3252vwos15b.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Commit Your Changes&lt;/strong&gt;&lt;br&gt;
A commit is a saved snapshot with a message describing what changed:&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%2Fvgjhyn3v5xsn2bu4ubdn.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%2Fvgjhyn3v5xsn2bu4ubdn.png" alt=" " width="800" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pro tip: Write clear commit messages! Future you will thank past you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: View Your History&lt;/strong&gt;&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%2F8y9v695shk9j8hrlba74.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%2F8y9v695shk9j8hrlba74.png" alt=" " width="800" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows your commit history - your project's timeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working with Remote Repositories (GitHub/GitLab)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pushing Your Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pushing means uploading your commits to a remote server (like GitHub):&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%2Fks5b2ckirv12fonbdc9m.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%2Fks5b2ckirv12fonbdc9m.png" alt=" " width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pulling Changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pulling downloads changes from the remote server to your computer:&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%2Fsdyl8uzomlulm2h3l00t.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%2Fsdyl8uzomlulm2h3l00t.png" alt=" " width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Always pull before you start working to get the latest changes!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Practices for Beginners&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Commit Often:&lt;/strong&gt; Small, frequent commits are better than huge ones &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write Good Messages:&lt;/strong&gt; Use the present tense ("Add feature" not "Added feature") &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull Before You Push:&lt;/strong&gt; Avoid merge conflicts &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Branches:&lt;/strong&gt; Keep your main branch stable &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't Git Push --force:&lt;/strong&gt; Unless you really know what you're doing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Your First Project Walkthrough&lt;/strong&gt;&lt;br&gt;
Here's what a typical workflow looks like:&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%2F3vm1l9msdgc6tycy2e3o.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%2F3vm1l9msdgc6tycy2e3o.png" alt=" " width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Bother Learning Git?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collaboration: Multiple people can work on the same project&lt;/li&gt;
&lt;li&gt;Backup: Your code lives on GitHub's servers&lt;/li&gt;
&lt;li&gt;Experimentation: Try ideas safely in branches&lt;/li&gt;
&lt;li&gt;Portfolio: GitHub becomes your coding resume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next Steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you're comfortable with these basics, explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Branching and merging&lt;/li&gt;
&lt;li&gt;Handling merge conflicts&lt;/li&gt;
&lt;li&gt;Git ignore files (.gitignore)&lt;/li&gt;
&lt;li&gt;Pull requests on GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember: Every Git expert was once a beginner who accidentally deleted something. Don't be afraid to make mistakes—that's how you learn! The most important command to know is git status. When in doubt, check your status.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>git</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
