<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: IGUNZA GEORGE</title>
    <description>The latest articles on Forem by IGUNZA GEORGE (@igunza_george_37c8fef5b54).</description>
    <link>https://forem.com/igunza_george_37c8fef5b54</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%2F3710807%2F75469b48-5871-41b6-9a91-77cae39f778c.png</url>
      <title>Forem: IGUNZA GEORGE</title>
      <link>https://forem.com/igunza_george_37c8fef5b54</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/igunza_george_37c8fef5b54"/>
    <language>en</language>
    <item>
      <title>How Analysts Turn Messy Data, DAX, and Dashboards into Action Using Power BI</title>
      <dc:creator>IGUNZA GEORGE</dc:creator>
      <pubDate>Tue, 10 Feb 2026 10:03:34 +0000</pubDate>
      <link>https://forem.com/igunza_george_37c8fef5b54/how-analysts-turn-messy-data-dax-and-dashboards-into-action-using-power-bi-4h56</link>
      <guid>https://forem.com/igunza_george_37c8fef5b54/how-analysts-turn-messy-data-dax-and-dashboards-into-action-using-power-bi-4h56</guid>
      <description>&lt;p&gt;In real organizations, data rarely arrives clean, complete, or ready for decision-making. Analysts are expected not only to understand Power BI tools, but also to use them in a way that influences business outcomes. Power BI becomes valuable when technical skills are applied with a clear link to business questions, operational decisions, and measurable performance improvements.&lt;/p&gt;

&lt;p&gt;This article explains how analysts move from messy data to actionable insights using Power BI, and how each technical step directly supports real-world decision-making.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Turning Messy Data into Reliable Inputs with Power Query
&lt;/h2&gt;

&lt;p&gt;Most business data contains errors such as missing values, duplicate records, inconsistent formats, and poorly structured tables. If these issues are not addressed, even the most advanced analysis will produce misleading results. Power Query is where analysts protect the business from bad decisions by enforcing data quality.&lt;/p&gt;

&lt;p&gt;Using Power Query, analysts clean and standardize data by removing duplicates, correcting data types, handling missing values, and restructuring tables into analysis-friendly formats. For example, transaction data may arrive in wide, poorly formatted spreadsheets that need to be unpivoted into a proper fact table. Customer names may appear in different formats and must be standardized to avoid incorrect counts.&lt;/p&gt;

&lt;p&gt;These technical steps have direct business impact. Clean and consistent data ensures that metrics such as revenue, customer counts, or operational costs are accurate. This prevents executives from acting on incorrect figures and builds trust in reports. In practice, this can reduce reporting disputes, speed up decision cycles, and eliminate manual data correction work.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Building Meaningful Calculations with DAX
&lt;/h2&gt;

&lt;p&gt;Once the data is clean and well-structured, analysts use DAX (Data Analysis Expressions) to create metrics that reflect real business logic. Raw data rarely answers business questions on its own. DAX allows analysts to define how performance should be measured.&lt;/p&gt;

&lt;p&gt;Using DAX, analysts create measures such as total revenue, profit margins, growth rates, year-over-year comparisons, and operational KPIs. These measures are dynamic and respond instantly to filters such as time period, region, or product category. For example, a single DAX measure can show monthly sales, quarterly performance, or annual trends without rewriting formulas.&lt;/p&gt;

&lt;p&gt;This technical capability translates directly into better decisions. Managers can evaluate performance against targets, identify declining trends early, and compare scenarios before taking action. Instead of static reports, decision-makers interact with the data and explore the drivers behind results. This leads to more informed actions such as adjusting pricing, reallocating budgets, or focusing on high-performing segments.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Modeling Data for Performance and Analytical Accuracy
&lt;/h2&gt;

&lt;p&gt;Behind every effective Power BI report is a well-designed data model. Analysts apply technical modeling principles such as star schemas, fact and dimension tables, and correctly defined relationships to ensure performance and accuracy.&lt;/p&gt;

&lt;p&gt;A strong data model reduces ambiguity, improves calculation reliability, and ensures fast report performance even with large datasets. For example, separating transactional data (facts) from descriptive data (dimensions) allows DAX measures to behave predictably and scale efficiently.&lt;/p&gt;

&lt;p&gt;From a business perspective, good data modeling enables faster reporting, smoother user interaction, and consistent results across teams. When reports refresh quickly and metrics behave as expected, users rely on them for daily operational decisions rather than treating them as reference-only tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Designing Dashboards That Drive Decisions
&lt;/h2&gt;

&lt;p&gt;Dashboards are where analysis meets action. A technically correct model is not enough if insights are poorly communicated. Analysts must design dashboards that highlight what matters and guide users toward decisions.&lt;/p&gt;

&lt;p&gt;Effective Power BI dashboards focus on key business questions: Are we meeting targets? Where are risks emerging? Which areas need immediate attention? Analysts use appropriate visuals, clear layouts, and meaningful KPIs to ensure insights are understood quickly.&lt;/p&gt;

&lt;p&gt;Interactivity plays a critical role. Slicers and filters allow users to explore scenarios, compare periods, and drill into problem areas without technical knowledge. This empowers managers and teams to take ownership of decisions based on data.&lt;/p&gt;

&lt;p&gt;Well-designed dashboards lead to measurable impact. They reduce reporting time, improve response speed, and align teams around shared metrics. Organizations can track performance in real time, monitor the results of strategic actions, and adjust course before issues become costly.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. From Insight to Measurable Business Impact
&lt;/h2&gt;

&lt;p&gt;The true value of Power BI lies in how technical skills influence outcomes. Clean data reduces errors and rework. Accurate DAX measures enable meaningful performance evaluation. Strong data models ensure reliability and scalability. Clear dashboards turn insights into action.&lt;/p&gt;

&lt;p&gt;When these skills are applied together, organizations see measurable benefits such as improved efficiency, reduced operational risk, increased revenue visibility, and faster decision-making. Power BI becomes a decision-support system rather than just a reporting tool.&lt;/p&gt;

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

&lt;p&gt;Advanced Power BI skills go beyond technical execution—they shape how organizations understand and act on data. By transforming messy data into reliable models, converting business logic into dynamic DAX calculations, and presenting insights through focused dashboards, analysts directly influence strategic and operational decisions.&lt;/p&gt;

&lt;p&gt;In real-world environments, this leads to measurable impact: better resource allocation, improved performance tracking, faster responses to change, and greater confidence in data-driven decisions. Power BI, when used effectively, connects technical expertise to business value and turns analysis into action.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>powerfuldevs</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Schemas and Data Modelling in Power BI</title>
      <dc:creator>IGUNZA GEORGE</dc:creator>
      <pubDate>Wed, 04 Feb 2026 08:08:29 +0000</pubDate>
      <link>https://forem.com/igunza_george_37c8fef5b54/schemas-and-data-modelling-in-power-bi-1e55</link>
      <guid>https://forem.com/igunza_george_37c8fef5b54/schemas-and-data-modelling-in-power-bi-1e55</guid>
      <description>&lt;p&gt;Data modeling in Power BI involves creating a semantic model (also called a dataset or data model) that connects tables through relationships, enabling analysis, calculations, and visualizations. A semantic model combines tables from Power Query, column metadata, and defined relationships. These relationships allow filters and aggregations to propagate correctly across tables, turning raw data into actionable insights.&lt;/p&gt;

&lt;p&gt;Data modeling in power BI emphasises thinking in terms of fact tables and dimension tables, drawing from dimensional modeling principles.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Fact tables&lt;/strong&gt; contain numeric data about business processes (e.g., sales, inventory, or hours worked). Each row represents an event, with columns for measures like quantities, amounts, or rates. Example: A "Hours" table with columns for TotalHoursBilled, HourlyRate, and HourlyCost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimension tables&lt;/strong&gt; store descriptive attributes about entities (people, places, things). They provide context for facts, with rows for each unique entity and columns like names, dates, locations, or categories. Examples: A "People" table (employee details) or "Calendar" table (dates, months, years).&lt;/p&gt;

&lt;p&gt;It is recommended that we identify facts and dimensions early in design, using a bus matrix (a Kimball technique) to map which dimensions connect to which facts. This creates an organized overview of grain (detail level), key measures, and relationships.&lt;/p&gt;

&lt;p&gt;Good modeling starts by identifying facts (what to measure) and dimensions (how to analyze them).&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships
&lt;/h2&gt;

&lt;p&gt;Relationships link tables so calculations work across them. In Power BI's Model view, create them by dragging columns or using Manage relationships.&lt;/p&gt;

&lt;p&gt;Key concepts of relationships&lt;/p&gt;

&lt;p&gt;1.Cardinality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One-to-many (or many-to-one): Preferred; unique values on the "one" side (often dimensions) link to multiple rows on the "many" side (facts).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One-to-one: Rare, for unique matches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many-to-many: Allowed but avoided due to complexity and resource use.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Cross-filter direction&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Single: Filtering flows one way (typically dimension → fact).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Both: Bidirectional; use sparingly to avoid ambiguity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Active vs. inactive: Only one active path between tables; inactive (dashed lines) for alternatives in calculations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Power BI often autodetects relationships based on column names and data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schemas: Star and Snowflake
&lt;/h2&gt;

&lt;p&gt;Star Schemas are the output of a practice known as Dimensional Modelling. The objective is to design data models that are optimised for reporting and analysis.&lt;/p&gt;

&lt;p&gt;It's not as scary as it sounds! Dimensional modelling seeks to model the business domain and capture semantics to structure the data in way that reflects the real world.&lt;/p&gt;

&lt;p&gt;A Star Schema (like any schema for tabular data) is composed of tables, which are composed of columns. Relationships exist between the tables.&lt;/p&gt;

&lt;p&gt;In a Star Schema there are two types of table:&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%2Fomjukxf2lfv3cbbnm813.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%2Fomjukxf2lfv3cbbnm813.png" alt="The simplest Star Schema showing relationship with the fact table when arranged on an entity relationship diagram" width="800" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dimension tables capture key attributes of a record in the fact table - allowing you to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When? exploring points in time, or grouping data over time periods such as days, months, years.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Who? by representing organisations, departments or even individual people.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What? identifying specific products or services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where? understanding relationships to physical and virtual locations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fact tables store the numerical data / transactions that you want to aggregate, group, filter, slice and dice (using the dimensions above) to deliver a specific actionable insight.&lt;/p&gt;

&lt;p&gt;The simplest Star Schema has one fact table and a small number of dimension tables. Each of the dimension tables has a "one to many" relationship with the fact table. When arranged on an entity relationship diagram, this leads to a star-like arrangement, hence the name Star Schema! This is illustrated below:&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%2Fsoejw1728x36ekqw73z0.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%2Fsoejw1728x36ekqw73z0.png" alt="Relationship diagram showing Star-like arrangement in Star Schema" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Power BI and Star Schemas?
&lt;/h2&gt;

&lt;p&gt;Power BI is optimised to work with Star Schemas. What it boils down to is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lower total cost of ownership - in three ways:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Data models that are simple. They have a smaller number of tables and relationships. Therefore, they are easier to understand and evolve.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Memory requirements are minimised - the data structures in a star schema are well suited to the column-store approach used by the VertiPaq engine at the heart of Power BI. This means that is able to compress the data minimising the memory footprint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compute requirements are minimised - a star schema is optimised for analytical workloads, queries over the data involve very few joins across tables, therefore the amount of compute required to return analytics is reduced.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Better user experience - better performance when querying and interacting with the data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maximising value from data - by unlocking all of the features in Power BI such as DAX measures or interactive features in visuals.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The data model that underpins every Power BI report implements the Star Schema as tables and relationships. DAX based measures are then layered on top of this data model to generate the analytics that are surfaced in the report.&lt;/p&gt;

&lt;p&gt;This concept is illustrated below:&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%2Fqotyyw6tscg03d6a3owa.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%2Fqotyyw6tscg03d6a3owa.png" alt="Power BI data model" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Good data modelling is critical to the success of any Power BI solution.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Well-designed models, especially star schemas, allow Power BI to efficiently compress data and execute queries quickly, even with millions of rows&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Clear relationships ensure that filters, slicers, and aggregations behave as expected. This prevents common issues such as double counting or incorrect totals.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Usability&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;A clean model makes it easier for report authors and business users to understand the data and build visuals confidently, supporting true self-service analytics.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Simple models are easier to extend, troubleshoot, and adapt as business requirements change.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;In Power BI, the data model is the foundation of all reporting and analysis. Separating data into fact and dimension tables, using a star schema, defining clear relationships, and avoiding unnecessary complexity are essential best practices. Investing time in good data modelling results in faster reports, accurate insights, and more reliable decision-making across the organization.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Introduction to Linux for Data Engineers</title>
      <dc:creator>IGUNZA GEORGE</dc:creator>
      <pubDate>Sun, 25 Jan 2026 18:50:55 +0000</pubDate>
      <link>https://forem.com/igunza_george_37c8fef5b54/introduction-to-linux-for-data-engineers-32np</link>
      <guid>https://forem.com/igunza_george_37c8fef5b54/introduction-to-linux-for-data-engineers-32np</guid>
      <description>&lt;p&gt;Linux is a special way to run a computer. It's free, super strong, and lots of grown-ups who work with huge amounts of information use it every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is a Data Engineer?
&lt;/h2&gt;

&lt;p&gt;A data engineer is like a builder who makes pipes and roads for information. Companies have tons of data — like all the videos people watch, all the games they play, or all the shopping they do. A data engineer helps move that data around quickly and safely so everyone can use it.&lt;/p&gt;

&lt;p&gt;They often work with giant computers called servers. These servers live in big buildings full of computers.&lt;/p&gt;

&lt;p&gt;Most of those big servers use Linux! Why? Because Linux is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Very strong (doesn't break easily)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Free (anyone can use it)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Great at handling lots of work at once&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Safe and secure&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many special tools that data engineers love (like Hadoop, Spark, and Kafka) work best on Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Magic Window: The Terminal
&lt;/h2&gt;

&lt;p&gt;On Linux, you talk to the computer using a black window called the Terminal. You type commands, and the computer obeys — like giving secret orders!&lt;/p&gt;

&lt;p&gt;Here are some easy commands to start exploring:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
# See where you are (like checking your room)
pwd
# Example output:
/home/yourname

# List everything here (like looking in your toy box)
ls
# Example output:
Documents  Pictures  favorites.txt

# Go into a folder (like walking into another room)
cd Documents

# Make a new folder
mkdir my_stuff

# Make a new empty file
touch shopping_list.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's like playing a game where you control everything with words!&lt;/p&gt;

&lt;h2&gt;
  
  
  Editing Files: Meet Nano and Vi
&lt;/h2&gt;

&lt;p&gt;Data engineers often need to write or change files — like lists, instructions, or little programs.&lt;br&gt;
They use special tools called text editors right in the Terminal (no mouse needed!).&lt;br&gt;
There are two popular ones: Nano (super easy) and Vi (a bit tricky but very powerful).&lt;/p&gt;
&lt;h3&gt;
  
  
  Nano — The Friendly Editor
&lt;/h3&gt;

&lt;p&gt;Nano is like drawing with big crayons — simple and nice.&lt;/p&gt;

&lt;p&gt;Type this to start:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Vi (or Vim) — The Powerful Editor
&lt;/h2&gt;

&lt;p&gt;Vi is older and faster once you learn it. Many data engineers use it every day.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Type this to start:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It opens in "command mode" (you can't type yet).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press i to start typing (now it's "insert mode").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type your shopping items:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Milk
Bread
Bananas
Candy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Press Esc key to go back to command mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type :wq then Enter to save and quit.&lt;br&gt;
(If you mess up and want to quit without saving, type :q! then Enter.)&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bash
cat shopping_list.txt
# Output:
Milk
Bread
Bananas
Candy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>dataengineering</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Beginner's Guide to Git and GitHub</title>
      <dc:creator>IGUNZA GEORGE</dc:creator>
      <pubDate>Sat, 17 Jan 2026 19:07:16 +0000</pubDate>
      <link>https://forem.com/igunza_george_37c8fef5b54/beginners-guide-to-git-and-github-1ij6</link>
      <guid>https://forem.com/igunza_george_37c8fef5b54/beginners-guide-to-git-and-github-1ij6</guid>
      <description>&lt;p&gt;If you are new to coding, chances are you've already heard developers mention Git and GitHub. At first, they may sound complex-even intimidating. The good news is that they are far less scary than they seem, and once you understand them, then you will wonder why you even coded without them.&lt;/p&gt;

&lt;p&gt;Git and GitHub are essential tools that help you track changes in your code, collaborate with others, and protect your work from costly mistakes. Whether you are building a small personal project or contributing to a team, these tools quickly become indespensable. &lt;/p&gt;

&lt;p&gt;In this guide, we’ll walk through everything step by step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What Git is and why version control matters?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to track changes in your code locally using Git&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to push your project to GitHub so it’s backed up and shareable&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to pull updates from GitHub to get the latest version of your&lt;br&gt;
code &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end, you’ll understand how Git fits into everyday development and feel confident using it in your own projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Git—and Why Do You Need Version Control?
&lt;/h2&gt;

&lt;p&gt;Git is a version control system. The simplest way to think about it is as a powerful undo button combined with a time machine for your code.&lt;/p&gt;

&lt;p&gt;Every time you save a meaningful change, Git records:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What changed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When it changed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why it changed&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go back to any previous version of your project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;See exactly what was added, removed, or modified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work on multiple features without breaking your main code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collaborate safely with other developers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Version Control Matters
&lt;/h2&gt;

&lt;p&gt;Imagine you’re working on a project and accidentally delete an important file. Without version control, that mistake could cost you hours—or days—of work.&lt;/p&gt;

&lt;p&gt;With Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You always have a complete history of your project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can experiment freely, knowing you can revert at any time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple people can work on the same project without overwriting each other’s work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why Git is an industry standard and a required skill in most development roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Set Up
&lt;/h2&gt;

&lt;p&gt;Before we begin, make sure you have the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Git installed on your computer&lt;br&gt;
Download it from [&lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;] and follow the installation instructions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A GitHub account&lt;br&gt;
Sign up at [&lt;a href="https://github.com" rel="noopener noreferrer"&gt;https://github.com&lt;/a&gt;] if you don’t already have one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure Git with your name and email.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config --global user.name "Your Name"
git config --global user. email "your.email@example.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’re now ready to start using Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tracking Changes Locally with Git
&lt;/h2&gt;

&lt;p&gt;Let’s begin with a simple project on your computer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new project folder
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir my-awesome-project
cd my-awesome-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Initialize Git in the folder&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This creates a hidden. git folder where Git stores your project’s history.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a file&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;echo "Hello, world!" &amp;gt; index.html&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check the project status&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Git will tell you that index.html is untracked—it sees the file but isn’t tracking changes yet.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add files to 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 add index.html.
# or add everything
git add.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The staging area is where you prepare changes before saving them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Commit your changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Initial commit: add hello world page”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A commit is a snapshot of your project at a specific point in time.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;View your project history&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You’ll see a list of commits with dates, messages, and unique IDs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make more changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Edit &lt;em&gt;index.html&lt;/em&gt;, then 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 status
git diff
git add.
git commit -m "Update greeting to be friendlier”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This cycle—add → commit → repeat—is the core Git workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pushing Code to GitHub (Sharing Your Project Online)
&lt;/h2&gt;

&lt;p&gt;Now let’s back up your project and make it accessible on GitHub.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new repository on GitHub&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;a href="https://github.com/new" rel="noopener noreferrer"&gt;https://github.com/new&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not initialize it with a README.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Create repository.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copy the repository URL. It will look like:&lt;br&gt;
&lt;code&gt;https://github.com/your-username/my-awesome-project.git&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Link your local project to GitHub&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git remote add origin https://github.com/your-username/my-awesome-project.git.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Push your code to GitHub&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git push -u origin main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The first push may ask you to authenticate. Once it completes, refresh the GitHub page—you’ll see your files online.&lt;/p&gt;

&lt;p&gt;Future updates are simpler:&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 "Your message”.
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pulling Code from GitHub
&lt;/h2&gt;

&lt;p&gt;There are two common situations where pulling comes in handy.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Starting a project from GitHub (cloning)&lt;br&gt;
&lt;code&gt;git clone https://github.com/their-username/their-project.git&lt;br&gt;
cd their-project&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
This downloads a full copy of the project and its history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updating your local project (pulling)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This fetches the latest changes from GitHub and merges them into your local files. If needed, you can specify the branch:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git pull origin main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Practice on a small personal project and you'll get comfortable fast. Git might feel overwhelming at first, but it's one of those tools that makes you a much better developer once you know it.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

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