<?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: Ngigi nyawira</title>
    <description>The latest articles on DEV Community by Ngigi nyawira (@ngigi_nyawira_a938a3f3847).</description>
    <link>https://dev.to/ngigi_nyawira_a938a3f3847</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%2F3708638%2F5bba04ae-ef8a-4482-9c43-d7b5aa25c804.jpg</url>
      <title>DEV Community: Ngigi nyawira</title>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ngigi_nyawira_a938a3f3847"/>
    <language>en</language>
    <item>
      <title>#Connecting Power BI to SQL Databases: A Complete Guide</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Sun, 15 Mar 2026 20:39:52 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/connecting-power-bi-to-sql-databases-a-complete-guide-jeb</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/connecting-power-bi-to-sql-databases-a-complete-guide-jeb</guid>
      <description>&lt;h2&gt;
  
  
  Introduction: PowerBi and SQL databases
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;What is PowerBi?&lt;/em&gt; It is a business intelligence platform that helps transform data from various sources into interactive, actionable insights, reports and dashboards. At the heart of most powerBi deployments is an &lt;strong&gt;SQL database&lt;/strong&gt;(Structured Query Language) - such as PostgreSQL, MySQL, and others are the gold standard for storing, organizing and retrieving data.&lt;/p&gt;

&lt;p&gt;Connecting PowerBi to a database gives analysts a live, reliable pipeline from raw operational data to polished dashboards. Instead of exporting CSV files manually and re-importing them, a direct database connection means the reports refresh automatically, dashboards reflect current data, and analysts spend less time wrangling files and more time generating insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to a local PostgreSQL database
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; open power Bi and select get data&lt;/p&gt;

&lt;p&gt;launch Power Bi and on the home ribbon, click on &lt;em&gt;get data&lt;/em&gt; button. A dropdown appears select more to open the full source browser.&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%2Fohu09nr9q20gxqelymgs.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%2Fohu09nr9q20gxqelymgs.PNG" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 :&lt;/strong&gt; Choose postgreSQL database.&lt;br&gt;
Navigate to the database category on the left the select PostgreSQL Database and click connect.&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%2Fvh6josdot9k58agqe6cb.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%2Fvh6josdot9k58agqe6cb.PNG" alt=" " width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 :&lt;/strong&gt; Enter the server and database details&lt;br&gt;
A connection dialog appears asking for the server and database name. For local postgreSQL instance, enter &lt;em&gt;localhost&lt;/em&gt; as the server. If your PostgreSQL is running on a non-default port, append it with a colon (&lt;em&gt;for example, localhost:1234&lt;/em&gt;). Enter the name of your target database in the Database field.&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%2Fp9rlefjkn99zwbs6sax7.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%2Fp9rlefjkn99zwbs6sax7.PNG" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 :&lt;/strong&gt;Enter credentials&lt;br&gt;
Power Bi then asks you to authenticate. Enter your postgresql username and password, then click connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5 :&lt;/strong&gt; Select and load tables&lt;br&gt;
A navigation panel appears showing all the tables and views in our database. Check on the tables you want to work with then click &lt;em&gt;load&lt;/em&gt; to import the data or &lt;em&gt;transform data&lt;/em&gt; to open Power query editor for cleaning.&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%2Fxblav776byhf13kh8f7m.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%2Fxblav776byhf13kh8f7m.png" alt=" " width="800" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting Power Bi to a cloud database such as AIVEN PostgreSQL.
&lt;/h2&gt;

&lt;p&gt;Aiven is an open source data platform that provides database management services for a wide range of popular open-source data technologies. Instead of hosting data in local computers, organizations host databases in the cloud&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1.&lt;/strong&gt; Login in to Aiven and getting connection details.&lt;br&gt;
Login to Aiven at [&lt;a href="https://console.aiven.io/login" rel="noopener noreferrer"&gt;https://console.aiven.io/login&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%2Fbq13mk77h5emmqf65wmd.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%2Fbq13mk77h5emmqf65wmd.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2.&lt;/strong&gt; Download the SSL certificate&lt;br&gt;
This certificate ensures secure connection between Power Bi and the database. When you connect to a cloud-hosted database, your data travels over the public internet between your machine and the cloud server. This certificate tells your local machine to trust Aiven ,without it your connection either fails or falls back to an insecure mode.&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%2Fulxurozc0n2arojrld05.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%2Fulxurozc0n2arojrld05.png" alt=" " width="800" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3. Establish connection in Power Bi&lt;br&gt;
Follow the same steps get data&amp;gt; postgreSQL database as before.&lt;br&gt;
in the connection dialog ,enter Aiven host and port in the server field, and enter database name.&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%2Fwwkv2ma4n2tbmijuy226.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%2Fwwkv2ma4n2tbmijuy226.png" alt=" " width="708" height="352"&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%2F9rn4dy6h3conetq6uazy.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%2F9rn4dy6h3conetq6uazy.png" alt=" " width="750" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Loading tables and building the data model
&lt;/h2&gt;

&lt;p&gt;Power BI automatically detects relationships between tables based on matching columns based on the primary key &amp;amp; foreign keys. You can also create them manually by dragging a column from one table onto the matching column in another.&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%2F5noterixuanl1z4sr08g.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%2F5noterixuanl1z4sr08g.png" alt=" " width="772" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why SQL skills matter for power Bi analysts
&lt;/h3&gt;

&lt;p&gt;Bi analysts are not just visual thinkers, they are fluent in SQL. SQL give analysts a significant advantage at every stage of the Bi workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Data retrieval&lt;/strong&gt; - with SQL you can write a query that pulls only the columns and rows relevant to your analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Total Data Control:&lt;/strong&gt; You are not limited to what someone else has exported for you. With SQL, you can reach into the database yourself and grab exactly the data you need for a specific report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Complex Logic is Easier:&lt;/strong&gt; Some data cleaning tasks—like handling duplicates or complex date logic—are often faster and more readable in SQL than using Power BI's "Power Query" (M language).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Industry Standard:&lt;/strong&gt; Almost every company uses a SQLL-based database (like Snowflake, SQL Server, or Oracle). It is the universal language of data that stays with you even if you switch from Power BI to another tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.Join and prepare data :&lt;/strong&gt; Complex multi-table joins, conditional logic, and derived columns are often easier and more performant to express in SQL than to build through Power Query's graphical steps.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Connecting Power BI to SQL databases — whether local PostgreSQL instances or cloud-hosted services like Aiven — is a foundational skill for any serious BI analyst. The connection process is consistent: open Power BI Desktop, navigate to Get Data, select the correct connector, supply the host details and credentials, and use the Navigator to choose your tables.&lt;/p&gt;

&lt;p&gt;Once loaded, building a schema with well-defined relationships between your fact table (sales) and dimension tables (customers, products, inventory) is what transforms a set of raw tables into a model that Power BI can reason about. And underpinning all of it — from efficient data retrieval to pre-built aggregations — is SQL, the language that lets analysts speak directly to the database before Power BI ever gets involved.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>A TECHNICAL DEEP DIVE INTO SQL JOINS AND WINDOWS FUNCTIONS.</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Mon, 02 Mar 2026 13:17:08 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/a-technical-deep-dive-into-sql-joins-and-windows-functions-4ocg</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/a-technical-deep-dive-into-sql-joins-and-windows-functions-4ocg</guid>
      <description>&lt;p&gt;Relational databases are built on relationships between tables. Joins and window functions enable data retrieval and analytics. Joins combine data across tables, window functions enable row-level analytics without collapsing result sets.&lt;/p&gt;

&lt;h1&gt;
  
  
  SQL joins
&lt;/h1&gt;

&lt;p&gt;what is a join?&lt;br&gt;
A join combines rows from two or more tables based on a related column (usually a foreign key)&lt;/p&gt;
&lt;h2&gt;
  
  
  Types of joins
&lt;/h2&gt;
&lt;h3&gt;
  
  
  INNER JOIN
&lt;/h3&gt;

&lt;p&gt;Returns only matching rows from both tables&lt;br&gt;
eg ; show employees with their department name.&lt;br&gt;
&lt;em&gt;Only matching rows appear. If an employee had no department, they would be excluded.&lt;/em&gt;&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.employee_id,
    e.name,
    d.department_name
FROM employees e
INNER JOIN departments d
    ON e.department_id = d.department_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  LEFT JOIN
&lt;/h3&gt;

&lt;p&gt;Returns all rows from the left table and matched rows from the right table. Non matches become NULL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    d.department_name,
    e.name
FROM departments d
LEFT JOIN employees e
    ON d.department_id = e.department_id;

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Explanation; every department appears. If a department has no employees, employee columns are NULL.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  RIGHT JOIN
&lt;/h3&gt;

&lt;p&gt;Returns all rows from the right table and matches rows from the left table.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Similar to a left join. The only difference is the right table is the base table&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  FULL OUTER JOIN
&lt;/h3&gt;

&lt;p&gt;Returns all matching rows between two tables, all non matching rows from the left table, and all non matching rows from the right table.&lt;br&gt;
where there's no match, the missing side appears as NULL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example Scenario
Assume:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Some departments have no employees&lt;/li&gt;
&lt;li&gt;Some employees are incorrectly assigned to non-existent departments&lt;/li&gt;
&lt;li&gt;Some projects exist without employees assigned&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A FULL OUTER JOIN helps detect data gaps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    d.department_name,
    e.name AS employee_name
FROM departments d
FULL OUTER JOIN employees e
    ON d.department_id = e.department_id;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  CROSS JOIN
&lt;/h3&gt;

&lt;p&gt;Join operation that combines every row from the first table with every row from the second table, producing a result known as the Cartesian product. Unlike other join types (like INNER JOIN or LEFT JOIN), it does not require a join condition using an ON clause.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If We Have:
4 employees
3 projects
Result = 12 rows
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    e.name,
    p.project_name
FROM employees e
CROSS JOIN projects p;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  WINDOW FUNCTIONS
&lt;/h1&gt;

&lt;p&gt;These are the most powerful analytical features in SQL. They allow you to perform calculations across related rows while preserving individual row detail.&lt;/p&gt;

&lt;p&gt;basic syntax;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FUNCTION() OVER (
    PARTITION BY column
    ORDER BY column
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OVER() → defines the window&lt;/li&gt;
&lt;li&gt;PARTITION BY → divides rows into groups&lt;/li&gt;
&lt;li&gt;ORDER BY → defines ordering within the group&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  RANKING EMPLOYEES WITHIN DEPARTMENTS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT 
    e.name,
    d.department_name,
    e.salary,
    RANK() OVER (
        PARTITION BY d.department_name
        ORDER BY e.salary DESC
    ) AS salary_rank
FROM employees e
JOIN departments d
    ON e.department_id = d.department_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;What happens&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Data is split by department&lt;/li&gt;
&lt;li&gt;within each department, employees are ordered by salary&lt;/li&gt;
&lt;li&gt;A rank is assigned.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  When to use window functions
&lt;/h3&gt;

&lt;p&gt;Use them when you need;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ranking within groups&lt;/li&gt;
&lt;li&gt;Running totals&lt;/li&gt;
&lt;li&gt;Moving averages&lt;/li&gt;
&lt;li&gt;Department comparisons&lt;/li&gt;
&lt;li&gt;Row-level analytics&lt;/li&gt;
&lt;li&gt;Gap analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Window functions analyze rows without collapsing them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Partition by&lt;/em&gt; defines grouping logic&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Order by&lt;/em&gt; defines sequence for calculation&lt;/li&gt;
&lt;li&gt;RANK(), ROW_NUMBER(), DENSE_RANK() handle ranking.&lt;/li&gt;
&lt;li&gt;SUM(), AVG() OVER() enable contextual aggregation.&lt;/li&gt;
&lt;li&gt;They are essential for analytical reporting.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Joins connect data while window functions analyze connected data.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>sql</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How Analysts Translate messy data, DAX, and dashboards into action using Power BI.</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Sun, 08 Feb 2026 18:18:35 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-2h3p</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-2h3p</guid>
      <description>&lt;h1&gt;
  
  
  The Analyst's Dilemma.
&lt;/h1&gt;

&lt;p&gt;Analysts face a constant challenge of transforming raw disorganized data  into clear, actionable insights that drive business decisions. This translation process—from messy data to meaningful dashboards to measurable action—represents the core value proposition of modern business intelligence. Power BI has emerged as a premier platform for this transformation, providing the tools necessary to navigate this journey systematically.&lt;br&gt;
The Reality of Data Sources&lt;/p&gt;

&lt;p&gt;Modern organizations rarely benefit from clean, well-structured data. Analysts typically encounter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple disconnected systems (CRM, ERP, spreadsheets)&lt;/li&gt;
&lt;li&gt;Inconsistent formatting and naming conventions&lt;/li&gt;
&lt;li&gt;Missing values and duplicate records&lt;/li&gt;
&lt;li&gt;Time-series data with irregular intervals&lt;/li&gt;
&lt;li&gt;Unstructured or semi-structured data sources&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Phase one: Power query
&lt;/h2&gt;

&lt;p&gt;This is a data processing / transformation engine capable of performing a wide variety of ETL tasks and allowing users to "mash-up" data across sources. It basically connects power bi to your external data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Get data&amp;gt;select data source&amp;gt; connect.
&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%2Fdsfu4k5odsvqmnknvakj.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%2Fdsfu4k5odsvqmnknvakj.PNG" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
Here the analyst does some data profiling and assessment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transformational Patterns:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Standardization: Enforcing consistent formats for dates, currencies, and categorical data&lt;/li&gt;
&lt;li&gt;Pivoting/Unpivoting: Restructuring data from wide to tall formats for analysis&lt;/li&gt;
&lt;li&gt;Fuzzy Matching: Combining datasets with imperfect key matches&lt;/li&gt;
&lt;li&gt;Custom Columns: Creating calculated columns during the import phase&lt;/li&gt;
&lt;li&gt;Parameterization: Building dynamic data source connections for refreshed analyses&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Phase two: Build smart calculations using DAX (Data Analytics Expressions)
&lt;/h2&gt;

&lt;p&gt;DAX is how you make your data answer business questions&lt;br&gt;
Without DAX, you just have raw data. With DAX, you get insights, trends, comparisons, rankings, and alerts that actually drive decisions.&lt;/p&gt;

&lt;h3&gt;
  
  
  DAX concepts
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Measures vs columns
The former are calculations done on the fly (eg: total profit )
The latter are permanent additions to your data table ( eg: creating a new column that calculates profit which is revenue - cost to every row)&lt;/li&gt;
&lt;/ol&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%2Fkkxrstuxw1panksfq7te.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%2Fkkxrstuxw1panksfq7te.PNG" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bottom line: DAX transforms your cleaned data from &lt;em&gt;what happened&lt;/em&gt; to &lt;em&gt;what does it mean and what should we do about it?&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Context is Everything
DAX automatically understands what you're looking at:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're viewing "Electronics" category, DAX knows to only calculate for electronics&lt;/p&gt;

&lt;p&gt;If you drill down to "January," it recalculates for just that month&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Time Intelligence
The most valuable DAX feature:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Year-over-Year comparisons&lt;/li&gt;
&lt;li&gt;Running totals&lt;/li&gt;
&lt;li&gt;Moving averages (like 30-day sales trends)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Phase 3: Making Dashboards That People Actually Use
&lt;/h2&gt;

&lt;p&gt;This is where insights become visible. The goal is to create dashboards so clear that anyone can understand them in 30 seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  The pyramid structure.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Top&lt;/strong&gt;: Key KPI's&lt;br&gt;
&lt;strong&gt;Middle&lt;/strong&gt; : Trends and comparisons&lt;br&gt;
&lt;strong&gt;Bottom&lt;/strong&gt;: Details for investigation &lt;br&gt;
Also include slicers on the side to act as filters.&lt;br&gt;
Ensure that every visual answers a question&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%2Fl1a0ulp2hgee0nbqbyau.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%2Fl1a0ulp2hgee0nbqbyau.PNG" alt=" " width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase four: Dashboards to action
&lt;/h2&gt;

&lt;p&gt;This is where insights make an impact and trigger real world action. Here, Power BI connects directly to business processes—sending notifications when metrics hit critical thresholds, generating tasks in Teams or Outlook, updating CRM records, or exporting data to other systems. The ultimate measure of success shifts from how many people view a report to what concrete actions they take because of it, ensuring that every insight translates into a tangible business outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: The Analyst as Decision Accelerator
&lt;/h2&gt;

&lt;p&gt;The journey from messy data to meaningful action is not about fancy charts or complex formulas. The decision makers do not even care about the process of how you got to make such insights, it's in the decisions that  the dashboard enables.&lt;br&gt;
Your job isn't done when the dashboard is built. It's done when someone looks at it and says, &lt;em&gt;"Now I know what to do next."&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>dataengineering</category>
      <category>dax</category>
    </item>
    <item>
      <title>Data modelling for Dummies: Because your data shouldn't live in a dumpster.</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Mon, 02 Feb 2026 18:09:29 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/data-modelling-for-dummies-because-your-data-shouldnt-live-in-a-dumpster-1l3o</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/data-modelling-for-dummies-because-your-data-shouldnt-live-in-a-dumpster-1l3o</guid>
      <description>&lt;p&gt;If your spreadsheet is a mess, like a teenagers room with clothes all over the floor then you are in the right place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Data Modelling
&lt;/h2&gt;

&lt;p&gt;Designing how your data fits together before you build anything. It's the blueprint that prevents your data from becoming a messy pile.&lt;/p&gt;

&lt;p&gt;It translates complex business requirements into technical, organized data structures to improve accuracy, efficiency, and data quality. Common stages include conceptual, logical, and physical modeling, which guide database design, analytics, and data management. &lt;/p&gt;

&lt;h2&gt;
  
  
  What are schemas?
&lt;/h2&gt;

&lt;p&gt;Schemas are a way to organize your data in the spreadsheet so it does not look like a dump. Schemas, for your spreadsheet are very important to keep your data organized.&lt;/p&gt;

&lt;p&gt;A schema is basically a blueprint for your data. It defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The tables you have&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The columns in each table&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The type of data in each column(eg; text, number)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How the tables are related&lt;/p&gt;
&lt;h2&gt;
  
  
  Types of schemas
&lt;/h2&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Star schema
&lt;/h3&gt;

&lt;p&gt;Think of it as the ultimate dashboard-friendly data structure. It's designed specifically for fast queries and easy analysis, like the perfect spreadsheet layout for Power BI or Tableau.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify a fact table: foundation of the data warehouse&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%2Fryrj41jub9a9pyj78zgb.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%2Fryrj41jub9a9pyj78zgb.PNG" alt=" " width="472" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Snowflake schema
&lt;/h3&gt;

&lt;p&gt;A snowflake schema is just a star schema with extra organization.&lt;br&gt;
&lt;em&gt;The analogy:&lt;/em&gt;&lt;br&gt;
Star Schema = All your clothes in one drawer&lt;br&gt;
Snowflake Schema = Socks drawer + shirts drawer + pants drawer&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%2Fu1qds0hxhetx6e35ybiv.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%2Fu1qds0hxhetx6e35ybiv.PNG" alt=" " width="332" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Why Use It?
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Less Duplication (Save storage space)&lt;/li&gt;
&lt;li&gt;More Accurate (One place to update "USA" to "United States")&lt;/li&gt;
&lt;li&gt; Normalized (Database nerds love it)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drawbacks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;More Complex (More tables = more confusion)&lt;/li&gt;
&lt;li&gt;Slower Queries (More joins = slower results)&lt;/li&gt;
&lt;li&gt;Harder for Users (Business users get lost)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When to Use It&lt;br&gt;
&lt;em&gt;✅ Good for:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data Warehouses (where accuracy matters more than speed)&lt;/li&gt;
&lt;li&gt;Complex hierarchies (Country → State → City → Store)&lt;/li&gt;
&lt;li&gt;Storage is expensive (saving money on disk space)&lt;/li&gt;
&lt;li&gt;Frequent updates (update once, fix everywhere)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;❌ Bad for:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Power BI / Tableau (they prefer star schema)&lt;/li&gt;
&lt;li&gt;Self-service analytics (too many tables confuse users)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Real-time dashboards (too slow)&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Word: Data Organization Made Simple
&lt;/h2&gt;

&lt;p&gt;At its core, data modeling is about giving your data a clear, organized home. Whether you choose the speed of a star schema for dashboards or the structure of a snowflake for complex systems, the goal is the same: turn raw chaos into reliable insight. Think of it as building with instructions instead of guessing—you save time, prevent errors, and ensure everyone understands what they're looking at.&lt;/p&gt;

&lt;p&gt;For most teams, especially those using tools like Power BI, the star schema is your best friend. It’s built for speed, designed for clarity, and trusted by analysts worldwide. Start with a simple blueprint, organize around facts and dimensions, and watch as messy spreadsheets transform into trustworthy answers. Your data shouldn't just exist—it should work for you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>science</category>
      <category>learning</category>
    </item>
    <item>
      <title>Welcome to Data World! Your Passport is Microsoft Excel</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Sun, 25 Jan 2026 15:29:18 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/welcome-to-data-world-your-passport-is-microsoft-excel-o01</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/welcome-to-data-world-your-passport-is-microsoft-excel-o01</guid>
      <description>&lt;p&gt;ver looked at a spreadsheet and seen more than just rows and numbers? Have you sensed there’s a story, a secret, or a powerful insight hiding inside, just waiting to be discovered? Welcome. You’ve just stepped into Data World, a place of curiosity, clarity, and smart decisions. And the best part? You already have your all-access passport: Microsoft Excel.&lt;/p&gt;

&lt;p&gt;This isn't about dry formulas or boring tables. This is your invitation to an adventure where you go from simply storing information to truly understanding it. To show you just how powerful your passport can be, we're going to embark on a real-world mission together. We’ll use a sales dataset—complete with realistic quirks and questions—as our map.&lt;/p&gt;

&lt;p&gt;Ready to stamp that first page? Let’s go!&lt;/p&gt;

&lt;h1&gt;
  
  
  Destination 1: Data cleaning
&lt;/h1&gt;

&lt;p&gt;Imagine arriving in a new city with a messy suitcase, you can't explore until you unpack and organize! Data is the same. Our first stop is Data Cleaning.&lt;/p&gt;

&lt;h2&gt;
  
  
  our cleaning toolkit
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Finding Duplicates: We’ll use
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Data &amp;gt; Remove Duplicates.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is an order an exact copy of another? Gone!&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%2Fmu9zyvrqpljahpfnx9l4.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%2Fmu9zyvrqpljahpfnx9l4.PNG" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixing Broken Dates: Are &lt;em&gt;OrderDates&lt;/em&gt; actually stored as text? We’ll make them real dates Excel can understand.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Destination 2:Data analysis (The main Exploration)
&lt;/h1&gt;

&lt;p&gt;Here is the fun part, asking questions. Here we move from staring at a wall of numbers to actually seeing patterns. It's all about visual cues  and isolating specific information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using filters.
&lt;/h3&gt;

&lt;p&gt;This tool allows you to hide the noise and focus only on the rows you care about.&lt;br&gt;
in the image below we only want to work with the guys who are not full time employees.&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%2Fw8sbe8hlwio5xr3qpd5q.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%2Fw8sbe8hlwio5xr3qpd5q.PNG" alt=" " width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditional formatting (visual cues)
&lt;/h3&gt;

&lt;p&gt;This tool automatically changes the appearance of cells based on their value&lt;br&gt;
in this case below, we highlighted the cells that include marketing and have only females.&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%2Ffwv990fnbznwt4spz3ex.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%2Ffwv990fnbznwt4spz3ex.PNG" alt=" " width="739" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Excel functions cheat sheet
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The big five (Basic Math)
&lt;/h4&gt;

&lt;p&gt;These functions follow a simple pattern &lt;em&gt;=Function(range)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;=SUM(G2:G10) Adds all the numbers in the selected range&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=Average(G2:G10) Calculates the mathematical mean&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=COUNT(G2:G10) Counts only cells containing those numbers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=MAX(G2:G10) Finds the highest value in the selected range&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;=MIN(G2:G10) Finds the lowest value in the selected range&lt;/p&gt;
&lt;h4&gt;
  
  
  Logic and cleaning
&lt;/h4&gt;

&lt;p&gt;These help you make decisions or fix messy data&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=IF(Condition,"&lt;em&gt;yes","no"&lt;/em&gt;): the "&lt;em&gt;decision maker&lt;/em&gt;."&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(M2&amp;gt;6,"great","poor")
&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%2Fhtr1eti03by6678256zg.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%2Fhtr1eti03by6678256zg.PNG" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;=CONCAT(A1,"",B1) Glues texts together. It can turn "John" in A1 and  "Doe" in B1 into "John Doe"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;=COUNTA(A1:A10)Counts all cells that are not empty(including texts and numbers)&lt;/p&gt;
&lt;h4&gt;
  
  
  Lookup and References
&lt;/h4&gt;

&lt;p&gt;When you have two lists and need to connect them, these are your bestfriends.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=XLOOKUP(value,lookup_col,return_col): eg lookup &lt;br&gt;
"employee ID" AND return their "Name."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;=Vlookup(value,table,col_index,False)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Conditional Functions
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;=IFS condition allows you to test multiple conditions in a cleaner sequence&lt;br&gt;
eg: =IFS(A1&amp;gt;=90,"A", A1&amp;gt;=80, "B",A1&amp;gt;=70,"C")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AND/OR&lt;br&gt;
These are tucked inside an IF statement to check mltiple things at once.&lt;br&gt;
&lt;em&gt;AND&lt;/em&gt;:All conditions must be true. &lt;/p&gt;&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%2Ftbkkpkv9pw8c17ysqzl3.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%2Ftbkkpkv9pw8c17ysqzl3.PNG" alt=" " width="756" height="278"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OR&lt;/em&gt;:At least one condition must be true.&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%2Fmmmkrk16l47xfhs40x40.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%2Fmmmkrk16l47xfhs40x40.PNG" alt=" " width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conditional math (SUMIF, COUNTIF, AVERAGEIF)
These perform calculations only on cells that meet a certain criteria
&lt;em&gt;=COUNTIF(A:A,"PENDING")&lt;/em&gt; Count cells that match a criteria
&lt;em&gt;=SUMIF(category, "food", Amount)&lt;/em&gt; Adds values in a range based on a condition
&lt;em&gt;=AVERAGEIF(dept,"sales", salary)&lt;/em&gt; Average values based on a condition.
#Destination 3: Data Visualization (The "Photo Album")
You’ve explored the ancient ruins and bustling markets. Now you need to show your friends back home! Data Visualization is your photo album.
To create a pivot table, go to insert&amp;gt;pivot table&amp;gt; create a new worksheet&amp;gt;then select the data you want to visualize.&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%2Fozutooat03818cw5b6sr.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%2Fozutooat03818cw5b6sr.PNG" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Our Visualization Toolkit:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Charts That Tell Stories:&lt;br&gt;
To insert a chart go to pivot table analyze&amp;gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Line Chart to show revenue trending up over the months.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Stacked Bar Chart to compare which channels (Online, Retail) perform best in each region.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Pie Chart (used sparingly!) to show the product category mix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slicers: These are like interactive filters for your charts. Click "Asia" on a slicer, and every chart on the page instantly updates to show only Asian data. It feels like magic.&lt;/p&gt;&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%2Fiblx2bfs7mmvmhzpm2c2.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%2Fiblx2bfs7mmvmhzpm2c2.PNG" alt=" " width="677" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We’ll build a one-page Dashboard—a beautiful, interactive control room where anyone can see the key insights at a glance.&lt;br&gt;
open a new sheet on excel&amp;gt; name it dashboard&amp;gt; add all your KPI'S&amp;gt; Then add all you charts and slicers.&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%2Fdzxrj32ia8xp60y1wann.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%2Fdzxrj32ia8xp60y1wann.PNG" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;br&gt;
You’ve explored the ancient ruins and bustling markets of your data. Now you need to show your friends back home the best photos and tell the story! Data Visualization is your photo album, and a Dashboard is your curated, interactive exhibit.&lt;/p&gt;

&lt;p&gt;Let's look at a real example—an Employee Performance Dashboard (like the one pictured). In one glance, we can see:&lt;/p&gt;

&lt;p&gt;The Big Numbers (KPIs): Total Salary, Total Bonus, Average Age, and Average Performance Score are right at the top. These are the "headline" metrics every manager wants to know.&lt;/p&gt;

&lt;p&gt;The Breakdowns (Charts): Below, charts answer specific questions:&lt;/p&gt;

&lt;p&gt;"Which department costs the most in salary?" (The bar chart for "Total salary by Department and Gender").&lt;/p&gt;

&lt;p&gt;"What's our most common education level?" (The "Education Level" pie/donut chart).&lt;/p&gt;

&lt;p&gt;"How is performance trending over time?" (The "Average Performance Score by Hire Date" line chart).&lt;/p&gt;

&lt;p&gt;This is the power of a dashboard: It turns 1,000 rows of employee data into a single, actionable page.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bon Voyage, Data Explorer!
&lt;/h1&gt;

&lt;p&gt;And there you have it—your stamped, validated, and ready-to-use passport to Data World. We started with a simple spreadsheet and transformed it into a living, breathing command center. From the essential clean-up at the Arrival Gate, to the thrilling exploration with PivotTables, to building your own interactive Dashboard, you've traveled the full journey.&lt;/p&gt;

&lt;p&gt;Remember, data analytics in Excel isn't about memorizing every function. It's about a mindset: curiosity, clarity, and the courage to ask questions. You now have the core tools:&lt;/p&gt;

&lt;p&gt;The clean slate: Turning messy data into a reliable foundation.&lt;/p&gt;

&lt;p&gt;The detective's lens: Using PivotTables and functions like SUMIFS and XLOOKUP to uncover truths.&lt;/p&gt;

&lt;p&gt;The storyteller's canvas: Building charts and dashboards that make insights undeniable and actionable.&lt;/p&gt;

&lt;p&gt;Your Excel passport is not a final destination, but a launchpad. The same logical steps you learned here—clean, analyze, visualize—apply whether you're looking at sales figures, website traffic, personal budgets, or community survey results. Data World is all around you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Git and GitHub: A Beginner's Guide</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Sat, 17 Jan 2026 00:56:25 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/git-and-github-a-beginners-guide-4lb6</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/git-and-github-a-beginners-guide-4lb6</guid>
      <description>&lt;h1&gt;
  
  
  What is Git?
&lt;/h1&gt;

&lt;p&gt;It is a free, open-source, version control system that tracks every change you make to your files. Think of it as a "save system" you literally have the ability to save multiple versions of your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Version control and it's importance
&lt;/h2&gt;

&lt;p&gt;Also know as source control or revision control is a system of tracking and managing files (especially code) over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  why is it essential?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Safety net:&lt;/strong&gt; you can quickly roll back to a prior functional version of your code if you make a mistake and ruin it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaborations:&lt;/strong&gt; several people can simultaneously work on the same file. The system enables them to merge their modifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceability:&lt;/strong&gt; Each file modification is recorded with a timestamp, a description, and the individual's name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experimentation:&lt;/strong&gt; Ability to test out a new feature without affecting the main project, you can make a "branch"- a different copy of the code. If it succeeds, you merge it; if not you remove the branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to push code on GitHub.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Create a local repository&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%2F0418ao0v16n5j3rt7pki.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%2F0418ao0v16n5j3rt7pki.PNG" alt="1" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
To initialize a new Git repository we use the command line below.
&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;ul&gt;
&lt;li&gt;To check the file you want to push, we use the command line below, note that the files will be shown in red
&lt;/li&gt;
&lt;/ul&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;&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%2Fd90ebnqnm84hckzj6k9z.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%2Fd90ebnqnm84hckzj6k9z.PNG" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The next step is to add the files to the folder, use the command line below;
&lt;/li&gt;
&lt;/ul&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;ul&gt;
&lt;li&gt;Then check on the files status, it shows up in green to signify that they've been added. use the command line;
&lt;/li&gt;
&lt;/ul&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;&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%2F3fhvt9ccerbtds33lb1v.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%2F3fhvt9ccerbtds33lb1v.PNG" alt=" " width="585" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Commit it locally, use the command line;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "Project added"
&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%2Fgi5wjhxquwdvya6zspqd.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%2Fgi5wjhxquwdvya6zspqd.PNG" alt=" " width="579" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Push code to the GitHub Repository: Copy the URL that is generated after creating a new repository on GitHub then use the command line below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin (then paste your URL)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The next step is to push your code to your GitHub, It will bring a pop up tab where you have to sign in to your GitHub Account.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin master
&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%2Fr4rdyv71p2eusjrg5p12.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%2Fr4rdyv71p2eusjrg5p12.PNG" alt="7" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Below is an image of the files on GitHub.&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%2Fq4hmjs1m8peldssfj2wl.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%2Fq4hmjs1m8peldssfj2wl.PNG" alt="4" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to pull code from GitHub
&lt;/h2&gt;

&lt;h3&gt;
  
  
  step 1
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
Clone your repository by navigating to your repository and copying the link the paste it after the below command line on git bash
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone 
&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%2Fgaxpe3hjutvb62o3zuoi.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%2Fgaxpe3hjutvb62o3zuoi.PNG" alt="1" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that navigate to the folder for directory command use the below command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd Git-Assignment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  step 2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;create a new branch
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b update-name
&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%2F1zf2t8qyn83rbdsdft0f.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%2F1zf2t8qyn83rbdsdft0f.PNG" alt="I" width="565" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  step3
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open repository in your editor and change the name, in our case we will use Vscode. use the command line:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;add your changes and then check the status using the below command lines respectively;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git status
&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%2F5hre2rxsg39j87pskucj.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%2F5hre2rxsg39j87pskucj.PNG" alt="I" width="609" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your GitHub account for the pull request.&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%2Fovbq1sfftrmxrl7meapp.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%2Fovbq1sfftrmxrl7meapp.PNG" alt="Ima" width="800" height="344"&gt;&lt;/a&gt;&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%2Ftqdx25eh1j55cpjgn38i.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%2Ftqdx25eh1j55cpjgn38i.PNG" alt="Imag" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Track changes using Git
&lt;/h2&gt;

&lt;p&gt;When tracking changes, you are telling Git to watch specific files and record their history at specific moments in time. There are 3 zones to track a file.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Working directory : editing files on your laptop. Git sees them but isn't tracking them yet&lt;/li&gt;
&lt;li&gt;Staging area : Flagging the changes you want to include in your next save
&lt;/li&gt;
&lt;/ol&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;ol&gt;
&lt;li&gt;Repository : Git takes a permanent snapshot of everything in the staging area
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sequence of commands
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;check what is currently happening. red files are untracked or modified. Git sees them but hasn't saved them.
&lt;/li&gt;
&lt;/ul&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;ul&gt;
&lt;li&gt;Adding files(staging).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add
or to add everything at once
git add . 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The moment the change is officially tracked in Git's history.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "brief description of what is changed"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Git status&lt;/em&gt; is your bestfriend. It is recommended to run it after every single command. It tells exactly which files are bein tracked and which ones are being ignored&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>webdev</category>
    </item>
    <item>
      <title>LuxDev Markdown Language Class</title>
      <dc:creator>Ngigi nyawira</dc:creator>
      <pubDate>Fri, 16 Jan 2026 21:31:53 +0000</pubDate>
      <link>https://dev.to/ngigi_nyawira_a938a3f3847/luxdev-markdown-language-class-152l</link>
      <guid>https://dev.to/ngigi_nyawira_a938a3f3847/luxdev-markdown-language-class-152l</guid>
      <description>&lt;p&gt;How to write using markdown language&lt;/p&gt;

&lt;h2&gt;
  
  
  sign makes the text a title
&lt;/h2&gt;

&lt;p&gt;2 Hash signs make the text a subtitle&lt;/p&gt;

&lt;h3&gt;
  
  
  subsection under subtitle
&lt;/h3&gt;

&lt;p&gt;3 hash signs make it a subsection under a subtitle&lt;br&gt;
To highlight on a word in a text &lt;strong&gt;that is to make it bold&lt;/strong&gt; and &lt;em&gt;in italics&lt;/em&gt; you use the asterisks before and after the text you want. 2 stars for the former and one star for the latter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using Hyphen &lt;/li&gt;
&lt;li&gt;appears as a list&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  adding a block of code
&lt;/h3&gt;

&lt;p&gt;the image below on how to adding a photo shows how to add a block of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name -"Gloria"
"yellow"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  adding a link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="//www.linkedin.com/in/gloria-ngigi-5a77b71a4"&gt;Visit my LinkedIn account on&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding a photo
&lt;/h3&gt;

&lt;p&gt;click on the picture icon at the top. &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%2Fj6qggnmypa51pclhl01m.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%2Fj6qggnmypa51pclhl01m.PNG" alt=" " width="626" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

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