<?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: Stacy Omwoyo</title>
    <description>The latest articles on DEV Community by Stacy Omwoyo (@moraa_omwoyo).</description>
    <link>https://dev.to/moraa_omwoyo</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%2F3708630%2Fa744a0c8-7cb2-4b71-b813-4ca8dc120551.png</url>
      <title>DEV Community: Stacy Omwoyo</title>
      <link>https://dev.to/moraa_omwoyo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/moraa_omwoyo"/>
    <language>en</language>
    <item>
      <title>JOINS AND WINDOW FUNCTIONS ON POSTGRESQL.</title>
      <dc:creator>Stacy Omwoyo</dc:creator>
      <pubDate>Mon, 02 Mar 2026 15:02:06 +0000</pubDate>
      <link>https://dev.to/moraa_omwoyo/joins-and-window-functions-on-postgresql-ld2</link>
      <guid>https://dev.to/moraa_omwoyo/joins-and-window-functions-on-postgresql-ld2</guid>
      <description>&lt;h2&gt;
  
  
  INRODUCTION
&lt;/h2&gt;

&lt;p&gt;In relational databases such as PostgreSQL, data is often stored across multiple related tables. To extract meaningful insights that will be key in decision-making, we must combine and analyze this data efficiently. The two most powerful ways to go about it are;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Using Joins&lt;/strong&gt;- combines data from multiple tables &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using Window Functions&lt;/strong&gt;- performs calculations across rows related to the current row without collapsing the result set.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Understanding how these two concepts work is fundamental for data analysis, backend developpers and database engineers. &lt;/p&gt;

&lt;h2&gt;
  
  
  PART 1: JOINS IN PostgreSQL
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is a Join?
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;join&lt;/strong&gt; combines rows from two or more tables based on related columns between them. One table will contain a primary key while the other contains a foreign key. The values in said keys are identical, which creates the correlation. &lt;/p&gt;

&lt;p&gt;There are various types of joins: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inner Join &lt;/li&gt;
&lt;li&gt;Right Join &lt;/li&gt;
&lt;li&gt;Left Join&lt;/li&gt;
&lt;li&gt;Natural Join &lt;/li&gt;
&lt;li&gt;Cross Join &lt;/li&gt;
&lt;li&gt;Self Join &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1.&lt;strong&gt;INNER JOIN&lt;/strong&gt;&lt;br&gt;
Returns data from matching rows in both tables. Used when you only want records that exist in both tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select c.first_name, c.last_name, o.quantity 
from clients c
INNER JOIN orders o
on c.customer_id = o.customer_id; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.&lt;strong&gt;RIGHT JOIN&lt;/strong&gt;&lt;br&gt;
Returns all the rows from the right table and matching rows from the left table. If no match exists, NULL is returned.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select c.first_name, c.last_name, o.quantity
from clients c 
RIGHT JOIN orders o 
on c.customer_id= o.customer_id ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.&lt;strong&gt;LEFT JOIN&lt;/strong&gt;&lt;br&gt;
Opposite of right join; returns all rows from the left table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select c.first_name, c.last_name, o.quantity
from clients c 
LEFT JOIN orders o 
on c.customer_id= o.customer_id ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.&lt;strong&gt;FULL OUTER JOIN&lt;/strong&gt; &lt;br&gt;
Returns all rows when there is a match on either left or 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;select c.first_name, c.last_name, o.quantity
from clients c 
FULL OUTER JOIN orders o 
on c.customer_id= o.customer_id ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.&lt;strong&gt;SELF JOIN&lt;/strong&gt;&lt;br&gt;
Joins a table to itself.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select e.name as Employee, m.name as manager
from employees e
inner join employees m on e.manager_id =m.employee_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6.&lt;strong&gt;CROSS JOIN&lt;/strong&gt;&lt;br&gt;
Can join more than two tables and return data from all the selected tables. This is very common in real-world business settings.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select b.title, o.quantity 
from books b 
INNER join orders o 
on b.book_id= o.book_id ;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7.&lt;strong&gt;NATURAL JOIN&lt;/strong&gt; &lt;br&gt;
Joins data from columns with the same name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select * from books 
natural join orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  PART 2: WINDOW FUNCTIONS IN POSTGRESQL.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are Window Functions in PostgreSQL?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Window Functions&lt;/strong&gt; perform calculations across a set of table rows related to the current row. Unlike the GROUP BY, they don't collapse rows. This is achieved by the use of the &lt;strong&gt;OVER()&lt;/strong&gt; clause.&lt;/p&gt;

&lt;p&gt;Window functions include the following:&lt;br&gt;
1.&lt;strong&gt;ROW_NUMBER()&lt;/strong&gt;&lt;br&gt;
Assigns a unique number to each row. It is very useful in ranking and pagination.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT name,
       ROW_NUMBER() OVER (ORDER BY amount DESC) AS row_num
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.&lt;strong&gt;RANK()&lt;/strong&gt;&lt;br&gt;
Assigns numbers to values in a group of values with a similar feature. It skips numbers when duplicates appear.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT name,
       RANK() OVER (ORDER BY amount DESC) AS rank
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.&lt;strong&gt;DENSE_RANK()&lt;/strong&gt;&lt;br&gt;
Similar to the Rank function, only it does not skip duplicates when assigning numbers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT name,
       DENSE_RANK() OVER (ORDER BY amount DESC) AS rank
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.&lt;strong&gt;PARTITION BY()&lt;/strong&gt; &lt;br&gt;
It divides rows into groups before applying the function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT customer_id,
       amount,
       RANK() OVER (PARTITION BY customer_id ORDER BY amount DESC) AS rank_per_customer
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.&lt;strong&gt;RUNNING TOTAL&lt;/strong&gt; (Cumulative Sum)&lt;br&gt;
Calculates the cumulative total per row as desired.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT customer_id,
       order_date,
       SUM(amount) OVER (
           PARTITION BY customer_id
           ORDER BY order_date
       ) AS running_total
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6.&lt;strong&gt;LAG() and LEAD()&lt;/strong&gt;&lt;br&gt;
Used to compare rows. They are very useful in trend analysis as they work hand in hand. LAG looks backward, while LEAD looks forward.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT customer_id,
       amount,
       LAG(amount) OVER (PARTITION BY customer_id ORDER BY order_date) AS previous_order
FROM orders;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;IT IS IMPORTANT TO NOTE THE FOLLOWING WHILE USING WINDOW FUNCTIONS&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
1.Ensure you use the &lt;strong&gt;PARTITION BY&lt;/strong&gt; function carefully, failure to do so results in the whole table being treated as one group. &lt;br&gt;
2.Check the &lt;strong&gt;ORDER BY function&lt;/strong&gt;, as it controls the order of calculations in the window function. &lt;br&gt;
3.&lt;strong&gt;Optimize performance&lt;/strong&gt;; window functions can be slow on large datasets; use indexes if needed.&lt;/p&gt;
&lt;h3&gt;
  
  
  COMBINING JOINS AND WINDOW FUNCTIONS
&lt;/h3&gt;

&lt;p&gt;In real-world analysis, both are often used together. &lt;br&gt;
We can come up with a query that joins tables, aggregates totals and applies ranking in one go.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT name,
       SUM(amount) AS total_spent,
       RANK() OVER (ORDER BY SUM(amount) DESC) AS spending_rank
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;p&gt;Joins and Window Functions are foundational tools in PostgreSQL. Where &lt;strong&gt;Joins&lt;/strong&gt; allow you to merge related data across tables and &lt;strong&gt;Window Functions&lt;/strong&gt; allow advanced analytical calculations while preserving row-level detail. &lt;/p&gt;

&lt;p&gt;A mastery in both gurantees expertise in &lt;br&gt;
-Sales Analysis &lt;br&gt;
-Customer Ranking &lt;br&gt;
-Time-series Analysis &lt;br&gt;
-Business Intelligence reporting&lt;br&gt;
-Data Engineering Workflows &lt;/p&gt;

&lt;p&gt;Together they transform raw relational data into actionable insights that will come in handy when it comes to decision-making. &lt;/p&gt;

</description>
      <category>sql</category>
      <category>postgres</category>
    </item>
    <item>
      <title>How Analysts translate Messy data, DAX, and dashboards into action using Power BI</title>
      <dc:creator>Stacy Omwoyo</dc:creator>
      <pubDate>Sun, 08 Feb 2026 14:38:26 +0000</pubDate>
      <link>https://dev.to/moraa_omwoyo/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-20e1</link>
      <guid>https://dev.to/moraa_omwoyo/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-20e1</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In the real world, data is rarely clean, complete or ready for analysis. Organizations collect information from multiple systems, in different formats, with inconsistencies, missing values and errors. Even with all the discrepancies, leaders still expect timely, accurate insights to guide decisions. This is where Power BI analysts come in handy; they bridge the gap between messy data and meaningful business action. &lt;br&gt;
This article explores how analysts use Power BI to transform raw data into insights that drive operational, tactical and strategic decisions: &lt;em&gt;data cleaning and modelling, DAX calculations and interactive dashboards&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From Messy data to a reliable data model
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Understanding the Business Question First.
&lt;/h3&gt;

&lt;p&gt;Before starting with Power BI, effective analysts start with the business problem. For example,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;_Why are sales declining in a certain region? _&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-_ Where are costs exceeding the budget? _&lt;/p&gt;

&lt;p&gt;This provides context for what data is needed and how it should be shaped. Without this step, even the most advanced dashboards risk answering the wrong questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cleaning and transforming data with Power Query.
&lt;/h3&gt;

&lt;p&gt;Most real data comes with issues such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Duplicate records &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missing or incorrect values &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple data sources that don't align &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using &lt;strong&gt;Power Query&lt;/strong&gt; analysts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Remove duplicates and irrelevant columns &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standardize formats (dates, currencies and categories)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Merge and append data from different systems &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create calculated columns for grouping or categorization. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This step is critical because decisions are only as good as the data behind them. Clean data builds trust among stakeholders and reduces the risk of misleading conclusions. &lt;/p&gt;

&lt;h3&gt;
  
  
  Designing the right data model.
&lt;/h3&gt;

&lt;p&gt;Once data is cleaned, analysts design a data model, typically using a star schema. &lt;br&gt;
&lt;strong&gt;Fact Tables&lt;/strong&gt;- hold measurable data (sales, hours worked)&lt;br&gt;
&lt;strong&gt;Dimension tables&lt;/strong&gt;- provide context(customer, date, region)&lt;/p&gt;

&lt;p&gt;A well-designed model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Improves report performance &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplifies DAX calculations &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensures consistent results across reports &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, this means leaders can compare figures across departments and time periods with confidence. &lt;/p&gt;

&lt;h2&gt;
  
  
  Turning Data into Insights with DAX
&lt;/h2&gt;

&lt;p&gt;DAX (Data Analysis Expresssions) is what allows analysis to move beyond static numbers. It enables dynamic calculations that respond to filters, slicers and user interactions. &lt;/p&gt;

&lt;p&gt;Instead of asking, "&lt;em&gt;What were the total sales this year?"&lt;/em&gt;&lt;br&gt;
DAX, allows questins like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;How do sales compare year over year?&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;What is the rolling 3-month average?&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Which products contribute the most to profits, not just revenue?&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Translating metrics into business language
&lt;/h3&gt;

&lt;p&gt;Good analysts design DAX measures that reflect how the business actually operates. For instance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;KPIs: revenue, growth, profit margin and customer retention rate&lt;/li&gt;
&lt;li&gt;Time intelligence: month-to-date, year-to-date and prior year comparisons&lt;/li&gt;
&lt;li&gt;Performance indicators: variance against targets or budgets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These measures turn raw figures into signals that decision-makers can quickly interpret and act on. &lt;/p&gt;

&lt;h3&gt;
  
  
  Enabling What-If and Scenario Analysis.
&lt;/h3&gt;

&lt;p&gt;With DAX, analysts can also support What-If analysis such as: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;How would profit change if prices increased by 5%?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What happens to costs if headcount grows by 10%?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This shifts Power BI from a reporting tool to a decision-support system, helping organizations plan rather than simply react. &lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboards that drive action rather than just reporting
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Designing for the audience
&lt;/h4&gt;

&lt;p&gt;An effective dashboard is not about showing everything- it's about showing what matters. Analysts tailor dashboards based on the audience: &lt;br&gt;
&lt;strong&gt;Excecutives&lt;/strong&gt;- need high-level KPIs and trends&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managers&lt;/strong&gt;- need performance by team, region or product. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operational staff&lt;/strong&gt;- need detailed, actionable views&lt;/p&gt;

&lt;p&gt;Clear layout, minimal clutter and consistent visuals help users focus on insights rather than figures. &lt;/p&gt;

&lt;h4&gt;
  
  
  Interactivity and exploration
&lt;/h4&gt;

&lt;p&gt;Power BI allows dashboard users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filter by date, region and category &lt;/li&gt;
&lt;li&gt;Drill down from summary to detail &lt;/li&gt;
&lt;li&gt;Identify patterns, outliers and exceptions &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This interactivity empowers non-technical users to explore data independently, reducing reliance on analysts for every question. &lt;/p&gt;

&lt;h4&gt;
  
  
  Linking Insights to Decisions
&lt;/h4&gt;

&lt;p&gt;The true impact of a dashboard is measured by the actions it triggers such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reallocating resources to underperforming regions &lt;/li&gt;
&lt;li&gt;Adjusting pricing or promotions based on demand patterns &lt;/li&gt;
&lt;li&gt;Identifying inefficiencies and cost-saving opportunities &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When dashboards are aligned with business goals, they become part of everyday decision-making rather than passive reports. &lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Impact of Power BI Analysis
&lt;/h2&gt;

&lt;p&gt;By translating messy data into clean models, meaningful DAX measures and intuitive dashboards, analysts enable organizations to &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make faster, evidence-based decisions
&lt;/li&gt;
&lt;li&gt;Improve transparency and accountability&lt;/li&gt;
&lt;li&gt;Detect risks and opportunities early&lt;/li&gt;
&lt;li&gt;Align teams around shared metrics and goals
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In sectors such as finance, healthcare, retail and public services, this can mean improved profitability, better service delivery and more effective use of limited resources. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Power BI is more than a visualization tool; it is a platform where technical skills meet real-world impact. Analysts who understand data cleaning, modeling, DAX and dashboard design play a crucial role in transforming messy, fragmented data into clear insights that guide action. &lt;br&gt;
Ultimately the value of Power BI lies not in charts or formulas but in the quality of decisions it enables. When used effectively, it becomes a powerful bridge between data and strategy. &lt;/p&gt;

</description>
      <category>datascience</category>
      <category>powerfuldevs</category>
    </item>
    <item>
      <title>Schemas and Data Modelling in Power BI</title>
      <dc:creator>Stacy Omwoyo</dc:creator>
      <pubDate>Mon, 02 Feb 2026 11:54:59 +0000</pubDate>
      <link>https://dev.to/moraa_omwoyo/schemas-and-data-modelling-in-power-bi-5dld</link>
      <guid>https://dev.to/moraa_omwoyo/schemas-and-data-modelling-in-power-bi-5dld</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Data Modeling is a foundational step in building effective Power BI reports. Even with clean data and effective visuals, poor data modeling can lead to slow performance, incorrect calculations and misleading insights. Schemas and data models define how data is structured, related and queried within Power BI. This article explores key data modelling concepts, including star schema, snowflake schema and fact and dimension table relationships explains why modelling is critical for performance and accurate reporting on Power BI. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Data Modelling in Power BI?
&lt;/h2&gt;

&lt;p&gt;In Power BI, data modeling is the process of organizing tables and defining relationships between them to represent real-world business processes. The data model determines how data is filtered, aggregated and analyzed when users interact with reports. &lt;br&gt;
A well-designed model &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reflects business logic clearly &lt;/li&gt;
&lt;li&gt;Makes DAX calculations simpler and more reliable &lt;/li&gt;
&lt;li&gt;Improves report performance&lt;/li&gt;
&lt;li&gt;Reduces ambiguity and errors in analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power BI uses a tabular data model, which works best when data follows established schema design patterns. &lt;/p&gt;

&lt;h2&gt;
  
  
  Fact and Dimension Tables
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Fact tables
&lt;/h3&gt;

&lt;p&gt;A fact table contains measurable, quantitative data related to business events or transactions. Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales Transactions &lt;/li&gt;
&lt;li&gt;Orders &lt;/li&gt;
&lt;li&gt;Website events &lt;/li&gt;
&lt;li&gt;Financial records &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fact tables usually: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contain numerical values (revenue, quantity and cost)&lt;/li&gt;
&lt;li&gt;Have many rows &lt;/li&gt;
&lt;li&gt;Include foreign keys that link to dimension tables&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Dimension Tables
&lt;/h3&gt;

&lt;p&gt;They provide descriptive context for facts and are used for filtering and grouping. &lt;br&gt;
For instance &lt;em&gt;Customer, Product, Date and Location&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Dimension tables usually: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have descriptive attributes (names, categories)&lt;/li&gt;
&lt;li&gt;Have fewer rows than fact tables &lt;/li&gt;
&lt;li&gt;Are used in slicers and filters&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Diagram: Fact vs Dimension Tables
&lt;/h4&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%2Fx9g172bl2cylm1rq6zl8.jpg" 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%2Fx9g172bl2cylm1rq6zl8.jpg" alt=" " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This seperation allows Power BI to aggregate facts correctly while dimensions control how data is sliced and filtered. &lt;/p&gt;

&lt;h2&gt;
  
  
  Star Schema
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Definition
&lt;/h3&gt;

&lt;p&gt;A star schema consists of one central fact table connected directly to multiple dimension tables, forming a star-like structure. &lt;/p&gt;

&lt;h4&gt;
  
  
  Diagram: Star Schema
&lt;/h4&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%2Flf01395kr0khn93mp5mv.webp" 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%2Flf01395kr0khn93mp5mv.webp" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Sales Fact&lt;/strong&gt; table sits at the center.&lt;br&gt;
All dimensions are directly linked to the fact table. &lt;br&gt;
No relationship exists between dimension tables. &lt;/p&gt;

&lt;h3&gt;
  
  
  Why is Star Schema preferred in Power BI?
&lt;/h3&gt;

&lt;p&gt;Star schemas are considered best practice because they: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimize the number of joins &lt;/li&gt;
&lt;li&gt;Improves query performance&lt;/li&gt;
&lt;li&gt;Makes DAX calculations easier &lt;/li&gt;
&lt;li&gt;Reduce filter ambiguity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Power BI's VertiPaq engine is optimized for star schemas, making them the most efficient structure for analytics and reporting. &lt;/p&gt;

&lt;h2&gt;
  
  
  Snowflake Schema
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Definition
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Snowflake Schema&lt;/strong&gt; is a variation of the star schema where the dimension tables are further normalized into multiple related tables. &lt;/p&gt;

&lt;h4&gt;
  
  
  Diagram: Snowflake Schema
&lt;/h4&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%2F6r4ia5al7tczmlrtlag3.webp" 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%2F6r4ia5al7tczmlrtlag3.webp" alt=" " width="800" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here the product dimension is split into multiple tables (the product is further split into categories).&lt;/p&gt;

&lt;p&gt;Pros and Cons &lt;br&gt;
&lt;em&gt;Pros:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduced data redundancy &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can be useful for very large data dimensions &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More complex relationships &lt;/li&gt;
&lt;li&gt;Slower perfoRmance in Power BI&lt;/li&gt;
&lt;li&gt;Harder to write and maintain DAX &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In light of these drawbacks, snowflake schemas are generally discouraged in Power BI unless necessary. &lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships in Power BI
&lt;/h2&gt;

&lt;p&gt;Relationships define how tables interact and how filters propagate across the model. &lt;/p&gt;

&lt;h3&gt;
  
  
  Common relationship types
&lt;/h3&gt;

&lt;p&gt;1.&lt;strong&gt;One-to-many&lt;/strong&gt; (1:* ): it is the most recommended and common type &lt;br&gt;
2.&lt;strong&gt;One-to-one&lt;/strong&gt; &lt;br&gt;
3.&lt;strong&gt;Many-to-many&lt;/strong&gt;- should be used cautiously&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter Direction
&lt;/h2&gt;

&lt;p&gt;Best practice in Power BI &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filters should flow from &lt;em&gt;Dimension&lt;/em&gt; to_ Fact._&lt;/li&gt;
&lt;li&gt;Use single-direction filtering where possible. &lt;/li&gt;
&lt;li&gt;Avoid unnecessary bi-directional relationships. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Active vs Inactive Relationships
&lt;/h3&gt;

&lt;p&gt;Power BI allows multiple relationships between tables, but only one can be active at a time. &lt;br&gt;
Inactive relationships can be activated using DAX functions such as &lt;strong&gt;USERRELATIONSHIP()&lt;/strong&gt; when required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance of Good Data Modeling
&lt;/h2&gt;

&lt;p&gt;1.&lt;strong&gt;Performance optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Efficient models: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce memory usage &lt;/li&gt;
&lt;li&gt;Speed up report refresh and visuals&lt;/li&gt;
&lt;li&gt;Improve user experience
Star schemas with fewer relationships outperform complex, highly 
normalized models. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.&lt;strong&gt;Accurate reporting and analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Poor modelling can lead to: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Double counting &lt;/li&gt;
&lt;li&gt;Incorrect totals &lt;/li&gt;
&lt;li&gt;Filters not behaving as expected 
Clear fact-dimension separation ensures calculations reflect real business logic. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.&lt;strong&gt;Simpler DAX Calculations&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Good models reduce the need for complex DAX logic. Measures become: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier to write &lt;/li&gt;
&lt;li&gt;Easier to debug &lt;/li&gt;
&lt;li&gt;Easier to maintain &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.&lt;strong&gt;Scalability and maintenance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well-designed models are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier to extend with new data &lt;/li&gt;
&lt;li&gt;Easier for other analysts to understand &lt;/li&gt;
&lt;li&gt;More reliable for long-term reporting &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Schemas and data modeling are central to effective Power BI reporting. Understanding fact and dimension tables, applying star schemas, avoiding unnecessary snowflake structures, and defining clean relationships ensures optimal performance and accurate insights. Investing time in good data modeling enables analysts to fully leverage Power BI's analytical capabilities and deliver reliable, business-ready reports. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Introduction to MS Excel for Data Analytics.</title>
      <dc:creator>Stacy Omwoyo</dc:creator>
      <pubDate>Sun, 25 Jan 2026 16:42:44 +0000</pubDate>
      <link>https://dev.to/moraa_omwoyo/introduction-to-ms-excel-for-data-analytics-3im6</link>
      <guid>https://dev.to/moraa_omwoyo/introduction-to-ms-excel-for-data-analytics-3im6</guid>
      <description>&lt;p&gt;Microsoft Excel is one of the most widely used tools for data analysis worldwide. The good news is you don't have to&lt;br&gt;
be an expert to start using it. &lt;br&gt;
Excel is powerful, flexible and beginner-friendly, making it a great starting point for anyone interested in data analytics. &lt;br&gt;
Today's article will tackle how MS Excel can be used for basic data analysis, using simple language and practical examples. I will add visuals to help you tag along and understand the process better. &lt;/p&gt;
&lt;h2&gt;
  
  
  What is Data Analysis?
&lt;/h2&gt;

&lt;p&gt;It is simply looking at data to find useful information. This can include: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comparing values (e.g., which product sells more)&lt;/li&gt;
&lt;li&gt;Understanding trends (e.g., sales going up or down) &lt;/li&gt;
&lt;li&gt;Spotting errors or missing information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Excel helps you do all of this without writing any code. &lt;/p&gt;
&lt;h2&gt;
  
  
  Getting started with Excel.
&lt;/h2&gt;

&lt;p&gt;Before data is analyzed, it needs to be cleaned and well organized. &lt;/p&gt;
&lt;h3&gt;
  
  
  Adding headers
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Headers&lt;/strong&gt; describe the data in each column &lt;br&gt;
Column A: Date &lt;br&gt;
Column B: Product &lt;br&gt;
Column C: Revenue &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%2Fdmbyb6ypbbw7h4ah3ae1.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%2Fdmbyb6ypbbw7h4ah3ae1.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Formatting as a table
&lt;/h3&gt;

&lt;p&gt;Excel allows you to convert your data into a table, which makes analysis easier. &lt;/p&gt;

&lt;p&gt;Steps &lt;br&gt;
1) Select your data &lt;br&gt;
2) Go to Home; format as table &lt;br&gt;
3) Choose table style &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%2Fgq07myeryfdhce9wiway.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%2Fgq07myeryfdhce9wiway.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Benefits of having a table: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy sorting and filtering &lt;/li&gt;
&lt;li&gt;Automatic formatting &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Basic Calculations Using Formulas
&lt;/h2&gt;

&lt;p&gt;Excel formulas are designed to perform calculations quickly, in turn making your work easier.&lt;/p&gt;

&lt;p&gt;When typing formulas into Excel always start with an equals sign (=)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SUM&lt;/strong&gt;: Adds Values within a selected range &lt;br&gt;
=SUM(CELL RANGE)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUM(M2:M633)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fnf8u66gt00ekno05x7mq.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%2Fnf8u66gt00ekno05x7mq.png" alt=" " width="673" height="840"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;AVERAGE&lt;/strong&gt;: Finds the mean value &lt;br&gt;
=AVERAGE(CELL RANGE)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=AVERAGE(M2:M631)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F81gwb63uqjdktp1mt5f5.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%2F81gwb63uqjdktp1mt5f5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;COUNT&lt;/strong&gt;: Counts cells with numbers&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNT(CELL RANGE)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fcj3vi8iuqvqu1xqiqdj9.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%2Fcj3vi8iuqvqu1xqiqdj9.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sorting and filtering Data
&lt;/h2&gt;

&lt;p&gt;Sorting and filtering help you to focus on specific information &lt;/p&gt;

&lt;h3&gt;
  
  
  Sorting
&lt;/h3&gt;

&lt;p&gt;Data can either be sorted from smallest to largest or from A to Z or vice versa. &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%2Fmt16y4k4va78u8j1plku.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%2Fmt16y4k4va78u8j1plku.png" alt=" " width="800" height="240"&gt;&lt;/a&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%2Fpsw011lufo8zngn0peez.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%2Fpsw011lufo8zngn0peez.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Filtering
&lt;/h3&gt;

&lt;p&gt;It allows you to only show certain values and hide unnecessary data. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;br&gt;
Click the filter arrow in a column header &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%2F7hh63vtxoc4kt8pkbw7j.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%2F7hh63vtxoc4kt8pkbw7j.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Select the values you want to see &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%2F9y4woa4b17qcjk90fuvz.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%2F9y4woa4b17qcjk90fuvz.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Press enter&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%2Fcwkoezxxsr0fhnpbw9qn.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%2Fcwkoezxxsr0fhnpbw9qn.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Charts to visualize data
&lt;/h2&gt;

&lt;p&gt;Charts turn numbers into visuals, making data easier to understand. &lt;br&gt;
&lt;strong&gt;Common Chart Types&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Column Chart- Good for comparing values &lt;/li&gt;
&lt;li&gt;Line Chart- Shows trends over time &lt;/li&gt;
&lt;li&gt;Pie chart- Shows proportions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Steps to create a chart&lt;/strong&gt;&lt;br&gt;
1) Select your data&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%2Fapja3srkvfw5tiakd6xy.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%2Fapja3srkvfw5tiakd6xy.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
2) Go to Insert &amp;gt; Charts &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%2F1whh6ztdttakjcy9x1mv.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%2F1whh6ztdttakjcy9x1mv.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
3) Choose chart type&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%2Filbfkee68anahnohn9ha.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%2Filbfkee68anahnohn9ha.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Data Cleaning in Excel
&lt;/h2&gt;

&lt;p&gt;Real-world data is often messy. Excel helps you clean it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Removing Duplicates&lt;/strong&gt;&lt;br&gt;
1) Select your data.  (Ctrl + A)&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%2Fppp8rhuqx5arojcz1af6.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%2Fppp8rhuqx5arojcz1af6.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
2) Go to Data&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%2F000ncrrrdsqlj94llqfw.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%2F000ncrrrdsqlj94llqfw.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
3) Ensure you've checked the box that says "My data has headers"&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%2Fi2cybzx7ixxjj8oz6pht.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%2Fi2cybzx7ixxjj8oz6pht.png" alt=" " width="800" height="450"&gt;&lt;/a&gt; &lt;br&gt;
4) Select "Ok"&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%2F4c1d7a63tkr5qmcoxe8k.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%2F4c1d7a63tkr5qmcoxe8k.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling empty cells&lt;/strong&gt;&lt;br&gt;
For small data sets the missing data can be manually keyed in.&lt;/p&gt;

&lt;p&gt;For larger data sets you can follow the following steps &lt;br&gt;
1) Highlight the column that has missing values &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%2Fdunu81gas1s8mo06rroi.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%2Fdunu81gas1s8mo06rroi.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
2) Go to home and select the filter option&lt;br&gt;
3) Go back to the headed row and select the drop-down; among the options you will be presented with is "Blanks."&lt;br&gt;
4) Select Blanks then Enter &lt;br&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%2Fscl8qabwhwqgm9rnoond.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%2Fscl8qabwhwqgm9rnoond.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) All the missing cells will be filtered out &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%2Fb9bdl30fh2ltqgoxr2pp.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%2Fb9bdl30fh2ltqgoxr2pp.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) Choose how to label the missing values; you can use "Unknown,"  because we are not aware of the data to key in at this juncture  then Enter &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%2F2p9daue3em2xr60zhycx.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%2F2p9daue3em2xr60zhycx.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7) Finally, hold the cursor to the bottom right of the labelled cell until a cross appears, then drag down to autofill the rest of the cells. &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%2F4hse0l6eye1vy6j8fcre.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%2F4hse0l6eye1vy6j8fcre.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Excel great for beginners?
&lt;/h2&gt;

&lt;p&gt;Excel is great for data analytics newbies because: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is easy to learn and operate &lt;/li&gt;
&lt;li&gt;No programming is required &lt;/li&gt;
&lt;li&gt;It's widely used in workplaces &lt;/li&gt;
&lt;li&gt;Skills from Excel can be transfered to PowerBI and SQL &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Microsoft Excel is a powerful starting point for anyone interested in data analytics. From organizing data and performing calculations to creating charts and finding insights, Excel makes data analysis accessible to beginners. &lt;/p&gt;

&lt;p&gt;With practice and curiosity, the simple tools you've learned here can help you with the first steps of data analysis, which is really helpful when it comes to making informed decisions. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Git for Beginners.</title>
      <dc:creator>Stacy Omwoyo</dc:creator>
      <pubDate>Sat, 17 Jan 2026 18:11:52 +0000</pubDate>
      <link>https://dev.to/moraa_omwoyo/git-for-beginners-2c7d</link>
      <guid>https://dev.to/moraa_omwoyo/git-for-beginners-2c7d</guid>
      <description>&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%2F0viwbf9qvznstam8ha8y.jpg" 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%2F0viwbf9qvznstam8ha8y.jpg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Git, How to use it and Why version control matters.
&lt;/h1&gt;

&lt;p&gt;If you're new to tech or programming like me, then you've probably come across phrases like:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Did you commit your changes?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Push it to GitHub.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Pull the latest version.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And honestly, it feels like you were left out of an inside joke. &lt;br&gt;
This article explains Git, GitHub, and Version control in layman's terms: why they matter, what they do, and how to use them as a complete beginner. &lt;/p&gt;
&lt;h2&gt;
  
  
  What is Version Control?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Version Control&lt;/strong&gt; is a system that tracks your changes over time. &lt;br&gt;
It allows you to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;See what changed, when, and why&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back to a previous version safely &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work with others without overwriting each other's work&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Experiment without fear of breaking everything&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;This is where Git comes in.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Git ?
&lt;/h2&gt;

&lt;p&gt;Git is a version control tool that helps you save, track and manage changes to your project over time. &lt;br&gt;
Instead of creating multiple messy files, Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Records every meaningful change &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Saves it with a message explaining what you did &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lets you rewind to any point in time: &lt;em&gt;time travel within your project&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scales from solo projects to global teams&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How to push code to GitHub as a beginner
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pushing&lt;/strong&gt; means sending your local project to GitHub&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; is an online platform that stores Git projects. It makes sharing and collaboration easier&lt;/p&gt;

&lt;p&gt;Step 1: Create a new repository on GitHub&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to GitHub.com&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new repository &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the repository URL&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 2: Connect to your local project&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inside your Project folder on GitHub
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init

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

&lt;/div&gt;


&lt;p&gt;This code tells Git to start tracking this project. &lt;/p&gt;

&lt;p&gt;Step 3: Add everything in the folder&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add.

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

&lt;/div&gt;



&lt;p&gt;Step 4: Commit your Changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "Added data cleaning script."

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

&lt;/div&gt;



&lt;p&gt;Step 5: Copy the Repository URL from GitHub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/yourusername/repository-name.git

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

&lt;/div&gt;



&lt;p&gt;Step 6: Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch -M main
git remote add origin https://github.com/yourusername/repository-name.git

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

&lt;/div&gt;



&lt;p&gt;Step 7: Push your code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push -u origin main

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Et Voila, your code is now on GitHub&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;From here on out, the next time you make changes, all you need is the code below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add.
git commit -m "Describe what you changed."
git push

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Pull code from Git
&lt;/h2&gt;

&lt;p&gt;Now we will tackle how to pull code; where &lt;em&gt;pulling&lt;/em&gt; is &lt;em&gt;Getting the latest version of a project&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  If you don't have the project or this is your first time: use clone
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Copy the repository link from GitHub&lt;/strong&gt;. It often looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/username/repo-name.git

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Run the code&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;git clone https://github.com/username/repo-name.git

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

&lt;/div&gt;



&lt;p&gt;By doing this, you: &lt;br&gt;
-Download the project&lt;br&gt;
-Set up Git automatically&lt;br&gt;
-Connects to GitHub&lt;/p&gt;
&lt;h3&gt;
  
  
  If you already have the project on your computer, then use Pull:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Go into the project folder on Bash&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;cd repo-name

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pull the latest changes&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;git pull

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

&lt;/div&gt;



&lt;p&gt;By doing this, you pull the latest updates from GitHub and merge them into your local files. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cloning&lt;/em&gt; applies when getting the project for the first time&lt;br&gt;
&lt;em&gt;Pulling&lt;/em&gt; applies when updating an existing project&lt;/p&gt;
&lt;h3&gt;
  
  
  How to track projects using Git.
&lt;/h3&gt;

&lt;p&gt;Each time you work on your project, you will repeat this cycle: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check what changed&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;git status

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

&lt;/div&gt;



&lt;p&gt;This tells you: &lt;br&gt;
-Which files were modified &lt;br&gt;
-Which files are new &lt;br&gt;
-What is not yet tracked&lt;br&gt;
This, simply put, is your &lt;em&gt;dashboard.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage the changes:&lt;/strong&gt; &lt;br&gt;
To stage everything, use this code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add.

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

&lt;/div&gt;



&lt;p&gt;To stage a specific file, use this code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add filename.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells git what you want to save. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit the changes:&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;git commit -m "Describe what you changed."

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;This is like saving a checkpoint in a game&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View project history:&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;git log

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

&lt;/div&gt;



&lt;p&gt;This shows: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All past commits &lt;/li&gt;
&lt;li&gt;Who made them &lt;/li&gt;
&lt;li&gt;When they were made&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Breaking the giant into smaller, bite-sized pieces made it less scary and way simpler to digest and follow through. At its core, Git aims to protect your work, track your progress, and facilitate collaboration without chaos. &lt;/p&gt;

&lt;p&gt;Whether you are learning software development, data science, analytics or working on research projects, Version Control isn't optional; it's a superpower.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>versioncontrol</category>
    </item>
  </channel>
</rss>
