<?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: Owen Avedi </title>
    <description>The latest articles on Forem by Owen Avedi  (@avedi).</description>
    <link>https://forem.com/avedi</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%2F3709623%2F951d7210-44e5-4961-8996-5880e80f3538.jpg</url>
      <title>Forem: Owen Avedi </title>
      <link>https://forem.com/avedi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/avedi"/>
    <language>en</language>
    <item>
      <title>Python 101 Basics for Data Analysis</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sun, 15 Mar 2026 11:02:48 +0000</pubDate>
      <link>https://forem.com/avedi/python-101-basics-for-data-analysis-5506</link>
      <guid>https://forem.com/avedi/python-101-basics-for-data-analysis-5506</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ty07au29c0one86m597.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ty07au29c0one86m597.jpg" alt=" " width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Python is a very readable programming language that became the number one choice for data analysis, mainly because it is easy to read, has a large number of ready-made tools, is free, and works everywhere. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step guide on how to start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install the Python version of your choice on your computer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check if Python has been successfully installed by running this in your CMD: &lt;code&gt;python --version&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install a text editor of your choice, such as VS Code, Sublime Text, or Anaconda.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Foundations to starting Python coding like a pro
&lt;/h2&gt;

&lt;p&gt;Python is an interpreted programming language, meaning you are supposed to write Python (.py) files in a text editor, then put those files into a Python interpreter to be executed.&lt;/p&gt;

&lt;p&gt;We can write our first Python file, let's call it &lt;code&gt;test.py&lt;/code&gt;, which can be done in any text editor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Hello World")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After running this code in the Python file, save your file. Open CMD, navigate to the directory where you saved the file, and run:&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%2Ftdmwyguwbfdv3dd866dv.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%2Ftdmwyguwbfdv3dd866dv.png" alt=" " width="585" height="45"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have just written and executed your first Python Program. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Python Indentation
&lt;/h2&gt;

&lt;p&gt;Indentation refers to the spaces in the beginning of a code line &lt;/p&gt;

&lt;p&gt;In many programming languages, indentation is optional and used only for readability. In Python, it is &lt;strong&gt;part of the syntax&lt;/strong&gt;, meaning Python uses indentation to determine the structure of your code.&lt;/p&gt;

&lt;p&gt;If indentation is incorrect, Python will raise an error. Python uses indentation to indicate a block of code.&lt;/p&gt;

&lt;p&gt;Python convention is to use &lt;strong&gt;4 spaces for each indentation level&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Correct indentation&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;weight = 80
if weight &amp;gt;= 70:
   print("You are overweight")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wrong indentation&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;weight = 80
if weight &amp;gt;= 70:
print(You are overweight")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You have to use the same number of spaces in the same block of code, or Python will return an error.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Python Variables
&lt;/h2&gt;

&lt;p&gt;A variable is a name used to store data in memory. In Python, a variable is created when you assign a value to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name = "Python"
version = 3
level = "Beginner"

print(name)
print(version)
print(level)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The equal sign &lt;code&gt;=&lt;/code&gt; is called the assignment operator. Basically means store the value on the right side, the variable on the left.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules for naming Variables
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Must always start with a letter or underscore&lt;/li&gt;
&lt;li&gt;Can contain letters, numbers, and underscores&lt;/li&gt;
&lt;li&gt;Cannot contain spaces, fill spaces with underscore&lt;/li&gt;
&lt;li&gt;Cannot contain special symbols&lt;/li&gt;
&lt;li&gt;It is case sensitive&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Comments
&lt;/h2&gt;

&lt;p&gt;Python has a commenting capability for the purpose of in-code documentation. Comments start with a &lt;code&gt;#&lt;/code&gt;, and Python will render the rest of the line as a comment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#This is a comment
print("Python Basics")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Python Data Types
&lt;/h2&gt;

&lt;p&gt;Data type tells Python what kind of value is stored and what operations can be performed on it. Major data types include:&lt;br&gt;
Text Type:  &lt;code&gt;str&lt;/code&gt;&lt;br&gt;
Numeric Types:  &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;complex&lt;/code&gt;&lt;br&gt;
Sequence Types: &lt;code&gt;list&lt;/code&gt;, &lt;code&gt;tuple&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;&lt;br&gt;
Mapping Type:   &lt;code&gt;dict&lt;/code&gt;&lt;br&gt;
Set Types:  &lt;code&gt;set&lt;/code&gt;, &lt;code&gt;frozenset&lt;/code&gt;&lt;br&gt;
Boolean Type:   &lt;code&gt;bool&lt;/code&gt;&lt;br&gt;
Binary Types:   &lt;code&gt;bytes&lt;/code&gt;, &lt;code&gt;bytearray&lt;/code&gt;, &lt;code&gt;memoryview&lt;/code&gt;&lt;br&gt;
None Type:  &lt;code&gt;NoneType&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Numeric data types
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Integer (int) - Whole numbers
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version = 3
level = 1

print(version, level)
print(type(version))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Float (float) - Decimal numbers
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;weight = 80.6
price = 100.40

print(weight, price)
print(type(weight))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Complex numbers - used in advanced math
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;z = 3 + 2j
print(z)
print(type(z))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Strings
&lt;/h2&gt;

&lt;p&gt;Strings store text and are written in quotes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name = "Python"
level = "Beginner" 

print(name)
print(level)
print(type(name))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Boolean type
&lt;/h2&gt;

&lt;p&gt;Booleans represent True or False.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(10 &amp;gt; 9)
a = 10
b = 9

print(a &amp;gt; b)
print(b &amp;gt; a)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version = 3
print(version &amp;gt;= 2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lists
&lt;/h2&gt;

&lt;p&gt;Lists are ordered and mutable collections.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;coding_languages = ["Python", "HTML", "CSS"]
print(coding_languages)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Tuples
&lt;/h2&gt;

&lt;p&gt;Tuples are ordered but immutable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;language = ("Python", 3, "Beginner")
print(language)
print(type(language))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Range
&lt;/h2&gt;

&lt;p&gt;Range represents a sequence of numbers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(list(range(5)))
print(list(range(1,10)))
print(list(range(3,20,2)))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Dictionaries
&lt;/h2&gt;

&lt;p&gt;This stores key-value pairs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;language = {
            "name": "Python",
            "version":  3,
            "level": "Beginner"
           }

print(language)
print(type(language))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sets
&lt;/h2&gt;

&lt;p&gt;Sets store unique values and remove duplicates automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;numbers = {1, 2, 2, 3, 4}
print(numbers)
print(type(numbers))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Frozen sets
&lt;/h2&gt;

&lt;p&gt;Immutable version of sets.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;f = frozenset([1, 2, 2, 3, 4])
print(f)
print(type(f))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Type conversion
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version = int("3")
price = float(100)
level = str(1)

print(version, type(version))
print(price, type(price))
print(level, type(level))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Difference between mutable and immutable data types
&lt;/h2&gt;

&lt;p&gt;Mutable data types are the ones that can be changed after creation. Immutable cannot be changed.&lt;br&gt;
Mutable data types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list&lt;/li&gt;
&lt;li&gt;dict&lt;/li&gt;
&lt;li&gt;set&lt;/li&gt;
&lt;li&gt;bytearray&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Immutable data types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;int&lt;/li&gt;
&lt;li&gt;float&lt;/li&gt;
&lt;li&gt;bool&lt;/li&gt;
&lt;li&gt;str&lt;/li&gt;
&lt;li&gt;tuple&lt;/li&gt;
&lt;li&gt;range&lt;/li&gt;
&lt;li&gt;frozenset&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are the basics to start being comfortable with Python. Happy Coding.&lt;/p&gt;

</description>
      <category>python</category>
      <category>coding</category>
      <category>analytics</category>
    </item>
    <item>
      <title>How to connect Power BI to a SQL database</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sat, 14 Mar 2026 15:09:36 +0000</pubDate>
      <link>https://forem.com/avedi/how-to-connect-power-bi-to-a-sql-database-knm</link>
      <guid>https://forem.com/avedi/how-to-connect-power-bi-to-a-sql-database-knm</guid>
      <description>&lt;p&gt;Power BI is a Microsoft tool that helps turn raw data into clear visuals like charts, dashboards, and graphs. It is mainly and widely used by companies for data analysis and business intelligence &lt;strong&gt;(BI)&lt;/strong&gt;. This basically means that companies use it to understand trends, track performance, and share effective business insights with teams.&lt;/p&gt;

&lt;p&gt;Most companies connect Power BI to databases mainly because most business data is stored in databases rather than files. This connection, therefore, gives Power BI access to large amounts of reliable data.&lt;/p&gt;

&lt;p&gt;SQL databases, on the other hand, are especially important because they store and manage analytical data in an organized and more secure way. They also handle a huge volume of information, support fast queries, ensure data is consistent, and allowing multiple users to access the same data safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting Power BI to a Local PostgreSQL Database
&lt;/h2&gt;

&lt;p&gt;Follow these steps for a local PostgreSQL database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download and open Power BI Desktop.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Get Data&lt;/strong&gt; on the &lt;strong&gt;Home&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Database&lt;/strong&gt; &amp;gt; &lt;strong&gt;PostgreSQL database&lt;/strong&gt; &amp;gt; &lt;strong&gt;Connect&lt;/strong&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%2Fsfudns5phsix8tx83668.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%2Fsfudns5phsix8tx83668.png" alt=" " width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter the server name and database name credentials to load data into Power BI.&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%2Fs2ev7s17ppapxo0r3604.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%2Fs2ev7s17ppapxo0r3604.png" alt=" " width="702" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Choose import mode. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Input your password and username when prompted, then connect.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Connecting Power BI to a cloud database like Aiven PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Aiven is a cloud service that hosts managed PostgreSQL databases. &lt;br&gt;
Follow these steps to connect Power BI to Aiven database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in to Aiven, then select your PostgreSQL service. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to the connection information section, where you will get:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Host&lt;/li&gt;
&lt;li&gt;Port&lt;/li&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password &lt;/li&gt;
&lt;/ol&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%2Fe7t4p5j6grq8846l5phw.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%2Fe7t4p5j6grq8846l5phw.png" alt=" " width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download the CA certificate. This is important because it encrypts the data between Power BI and the cloud database, so no one can read the data as it travels through the internet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Back in Power BI Desktop,  Click &lt;strong&gt;Get Data&lt;/strong&gt; on the &lt;strong&gt;Home&lt;/strong&gt; tab. Choose &lt;strong&gt;Database&lt;/strong&gt; &amp;gt; &lt;strong&gt;PostgreSQL database&lt;/strong&gt; &amp;gt; &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the server as &lt;code&gt;host:port&lt;/code&gt; and the database name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If Power BI asks for SSL settings, install it into your trusted root certificates on Windows for a smoother connection.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to install an SSL certificate on Windows
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download the certificate from Aiven.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press Windows + R to open the Run dialog.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type &lt;code&gt;mmc&lt;/code&gt; and press Enter to open the Microsoft Management Console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;File&lt;/strong&gt; &amp;gt; &lt;strong&gt;Add/Remove Snap - in...&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find and select certificates in the left pane, click &lt;strong&gt;Add&lt;/strong&gt; &amp;gt; &lt;strong&gt;my user account&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Finish&lt;/strong&gt; then &lt;strong&gt;Ok&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the left pane of MMC, expand &lt;strong&gt;Certificates&lt;/strong&gt; &amp;gt; expand &lt;strong&gt;Trusted Root Certification Authorities&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Right-click on the Certificates  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;All Tasks&lt;/strong&gt; &amp;gt; &lt;strong&gt;Import&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Certificate Import wizard opens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Next&lt;/strong&gt; &amp;gt; &lt;strong&gt;Browse&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In File Browser, change the dropdown at bottom-right from "Certificate Files (.cer;.crt)" to All Files (.) This is crucial so you can see your .pem file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to your downloaded Aiven .pem file, select it, and click Open&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Next&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It should auto-select Place all certificates in the following store: Trusted Root Certification Authorities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Next&lt;/strong&gt; &amp;gt; &lt;strong&gt;Finish&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Yes, it's safe for your own CA cert&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should see "The import was successful."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide username and password, then connect. &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%2Fy8ogk6cqempi0f5bax84.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%2Fy8ogk6cqempi0f5bax84.png" alt=" " width="235" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose the required tables. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Loading tables and creating relationships in Power BI
&lt;/h2&gt;

&lt;p&gt;Once connected, in the navigator, click on the tables you want to connect. e.g., customers, sales, inventory, and products. Click Load to bring them into Power BI.&lt;/p&gt;

&lt;p&gt;What Power BI does is load them as separate tables. To analyze them correctly, you need to model them or create relationships between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basics of data modelling&lt;/strong&gt; - link tables using common columns so Power BI knows how the data connects. This allows filter and calculations to flow properly. &lt;/p&gt;

&lt;p&gt;Common relationships in our table:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers &amp;gt; Sales (Via Customer ID)&lt;/li&gt;
&lt;li&gt;Products &amp;gt; Sales (Via Product ID)&lt;/li&gt;
&lt;li&gt;Products &amp;gt; Inventory (Via Product ID) &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%2F6mkq14ly0e4sezgqabs3.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%2F6mkq14ly0e4sezgqabs3.png" alt=" " width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These relationships help Power BI to correctly aggregate data for accurate reports and visuals. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why SQL Skills Are Important for Power BI Analysts
&lt;/h2&gt;

&lt;p&gt;Most real - world data lives in databases, not Excel files. This is where SQL becomes essential when dealing with databases for Power BI analysts.&lt;br&gt;
Here's how SQL directly helps Power BI analysts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Retrieve data efficiently - Power BI connects to databases, but sometimes you don't want to pull everything. With SQL, you write precise queries to fetch only relevant data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filter data sets - SQL lets you apply filters at the source before data reaches BI, making your imported tables cleaner and visuals more focused. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Perform aggregations- you can load pre-aggregated results much more efficiently than doing it all in Power BI for quicker refreshes and simpler DAX.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prepare data before building dashboards - SQL is efficient in the ETL (Extract, Transform, Load) phase from joining tables, cleaning data, and creating derived columns. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Power BI is great for visualization and modeling, but SQL is the key to controlling and preparing the raw data underneath. Without SQL, analysts are limited to what Power BI's Power Query can do (which is powerful but slower for massive databases and lacks the precision of database-level operations). With SQL, you become more independent, optimize performance, and deliver faster, more reliable dashboards.&lt;/p&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>A Simple Guide to JOINs and Window Functions</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sun, 01 Mar 2026 17:06:47 +0000</pubDate>
      <link>https://forem.com/avedi/a-simple-guide-to-joins-and-window-functions-46nk</link>
      <guid>https://forem.com/avedi/a-simple-guide-to-joins-and-window-functions-46nk</guid>
      <description>&lt;h1&gt;
  
  
  1. Joins
&lt;/h1&gt;

&lt;p&gt;Think of joins as putting puzzles together. They combine tables. Let's say you want information from two tables that belong to the same person or thing, then JOINs relates this information. For instance:&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%2F3eza50zaow9v4ujrokkb.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%2F3eza50zaow9v4ujrokkb.png" alt=" " width="170" height="127"&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%2Fcguz7gt0wmkuc1h6lusn.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%2Fcguz7gt0wmkuc1h6lusn.png" alt=" " width="164" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Most Common JOIN types
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;INNER JOIN - Only matching records from both tables. &lt;br&gt;
In the example in the table above, INNER JOIN returns 3 rows: only people who have a department.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LEFT JOIN - All from the left table + matching from the right.&lt;br&gt;
In the example in the table above, LEFT JOIN returns 3 rows: all people, even those without a department.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RIGHT JOIN - All from the right table + matching from the left.&lt;br&gt;
In the example in the table above, RIGHT JOIN returns 4 rows: all departments, even those without people.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FULL OUTER - All records from both. In the example in the table above, it returns 4 rows: everyone and every department.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sample Queries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; -- INNER JOIN (most common)
SELECT employees.name, departments.dept_name
FROM employees 
INNER JOIN departments ON employees.dept_id = departments.dept_id;
-- Result: Alice→Sales, Bob→Marketing, Charlie→Sales
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- LEFT JOIN (very popular for "show all + extra info if exists")
SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.dept_id;
-- Result: Alice→Sales, Bob→Marketing, Charlie→Sales (no missing people)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  2. Window Functions
&lt;/h1&gt;

&lt;p&gt;These are calculations across rows without grouping. The normal GROUP BY collapses rows, but window functions let you see the group result while still keeping every row.&lt;/p&gt;

&lt;p&gt;Think of it as: for each row, tell me something about its group.&lt;/p&gt;

&lt;p&gt;Sample Queries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Running total
SELECT sale_date, amount,
SUM(amount) OVER (ORDER BY sale_date) AS running_total
FROM sales;

-- Result example:
sale_date   | amount | running_total
------------|--------|---------------
2025-01-01  | 100    | 100
2025-01-02  | 150    | 250
2025-01-03  | 80     | 330
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Rank of each person
SELECT name, salary,
RANK() OVER (ORDER BY salary DESC) AS rank,
DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank
FROM employees;

-- Result:
name    | salary | rank | dense_rank
--------|--------|------|------------
King    | 12000  | 1    | 1
Alice   | 9000   | 2    | 2
Bob     | 9000   | 2    | 2          
Charlie | 7000   | 4    | 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;dense_rank&lt;/code&gt; doesn't skip&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Previous / next row value (great for time series)
SELECT sale_date, amount,
LAG(amount) OVER (ORDER BY sale_date)  AS previous_day_amount,
LEAD(amount) OVER (ORDER BY sale_date) AS next_day_amount
FROM sales;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quick guide to not get confused:&lt;/p&gt;

&lt;p&gt;JOIN = glue 2 tables together horizontally&lt;br&gt;
Window = look around your row (up/down/same group) and bring back smart numbers&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>sql</category>
      <category>datastructures</category>
      <category>analytics</category>
    </item>
    <item>
      <title>How Analysts Translate Messy Data, DAX, and Dashboards into Action Using Power BI</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sun, 08 Feb 2026 16:29:19 +0000</pubDate>
      <link>https://forem.com/avedi/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-46dg</link>
      <guid>https://forem.com/avedi/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-46dg</guid>
      <description>&lt;p&gt;Power BI helps analysts transform messy data into clear, interactive dashboards that eventually help in driving business decisions. The whole process, however, follows a structured workflow: clean the data, build a reliable model, calculate with DAX, create compelling visualizations, and then extract insights that lead to decision-making.&lt;/p&gt;

&lt;p&gt;This is exactly how it is approached step by step:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Transforming Messy Data with Power Query
&lt;/h2&gt;

&lt;p&gt;Real-world data is always messy, and includes missing values, inconsistent word spacing and spellings, wrong data types, and extra junk columns.&lt;/p&gt;

&lt;p&gt;Power Query handles all these before the data even reaches the model. Analysts have key techniques to follow to fix this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Profile the data&lt;/strong&gt; - To spot issues quickly and save on time, use column quality, column distribution, and column profile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remove errors and duplicates&lt;/strong&gt; - Fill blanks or filter invalid rows where appropriate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standardize and clean&lt;/strong&gt; - Apply trim, case transformations, and replace values where applicable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Handle missing values&lt;/strong&gt; - Replace with "Null", "Unknown", "0", or averages based on context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fix data types&lt;/strong&gt; - Manually set whole numbers, dates, text, decimal numbers to avoid later errors.&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%2F1ksgsuoo0ztztj8exq67.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ksgsuoo0ztztj8exq67.webp" alt=" " width="800" height="457"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  2. Building a Data Model
&lt;/h2&gt;

&lt;p&gt;A good model is the foundation of fast, accurate reports. The design commonly followed and easy to use by analysts is the &lt;strong&gt;Star Schema&lt;/strong&gt; design. It contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Facts table&lt;/strong&gt; in the center.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dimension tables&lt;/strong&gt; around the facts table to provide context.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What you do is create one-to-many relationships from dimensions to facts. Hide unnecessary fields from report view and optimize by removing unused columns. &lt;/p&gt;

&lt;p&gt;This structure prevents performance issues in larger data sets and ensures slicers and filters work correctly.&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%2F3fhy8cnk980853j0wj60.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%2F3fhy8cnk980853j0wj60.png" alt=" " width="800" height="546"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  3. Adding Intelligence with DAX
&lt;/h2&gt;

&lt;p&gt;DAX (Data Analysis Expressions) is Power BI's language formula. It creates measures and calculated columns.&lt;/p&gt;

&lt;p&gt;Essential examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Basic aggregation: &lt;code&gt;Total Sales = SUM(Sales[Amount])&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Division: &lt;code&gt;Profit Margin = DIVIDE([Total Profit], [Total Sales], 0)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Time intelligence: &lt;code&gt;Revenue LY = CALCULATE([Total Revenue], SAMEPERIODLASTYEAR('Date'[Date]))&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conditional logic: &lt;code&gt;SWITCH(TRUE(), ...)&lt;/code&gt; use this with branded categories.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use variables &lt;code&gt;(VAR)&lt;/code&gt; for readability and performance. Prefer measures over calculated columns when possible, as they are more efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Building Dashboards
&lt;/h2&gt;

&lt;p&gt;Dashboards help analysts turn numbers into stories, focusing on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;KPI Cards&lt;/strong&gt; for headline numbers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trend Charts&lt;/strong&gt; line/area for time series, bar/column for comparisons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Breakdowns&lt;/strong&gt; Pie/donut for composition, maps for geography.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactivity&lt;/strong&gt; Slicers, cross-filtering, and tool tips.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Best practice: Use one page for an executive overview, include a clear visual hierarchy, and use a consistent theme.&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%2Fgs0tsw7mpbewyezqjvl9.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%2Fgs0tsw7mpbewyezqjvl9.png" alt=" " width="800" height="448"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  5. Turning Insights into Action
&lt;/h2&gt;

&lt;p&gt;This is the final and most important step. This is done by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Spotting trends, anomalies, and outliers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using what-if parameters for scenario planning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add commentary on the report.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Publish to the Power BI service for sharing, scheduled refresh, alerts, and collaboration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copilot helps in accelerating summarized reports in plain language, generating entire report pages, or creating narrative insights automatically.&lt;/p&gt;

&lt;p&gt;Mastering this flow enables analysts not to just produce pretty dashboards, but to be trusted advisors who turn messy data into clear, evidence-based decisions.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>dax</category>
    </item>
    <item>
      <title>Dummy Guide to Schemas and Data Modelling In Power BI</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sun, 01 Feb 2026 21:17:02 +0000</pubDate>
      <link>https://forem.com/avedi/dummy-guide-to-schemas-and-data-modelling-in-power-bi-39m4</link>
      <guid>https://forem.com/avedi/dummy-guide-to-schemas-and-data-modelling-in-power-bi-39m4</guid>
      <description>&lt;p&gt;Here is a super simple explanation of schemas and data modelling in Power BI. Think of Power BI like building with interlocking blocks.&lt;/p&gt;

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

&lt;p&gt;Data Modelling is deciding which block is going to interlock with another, and how they should interlock so that you can build something useful.&lt;br&gt;
You take all your messy tables, organize them, and connect them properly so that Power BI can, in turn, answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"How much did each client spend last year?"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Which products sell best in a particular country?"&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is a Schema?
&lt;/h2&gt;

&lt;p&gt;First off, we need to know what a schema consists of. It has the &lt;strong&gt;fact table&lt;/strong&gt;, which is the biggest table with lots of rows: it can contain numbers you want to add up (measures) or IDs linking to other tables.&lt;/p&gt;

&lt;p&gt;It also consists of &lt;strong&gt;Dimension tables&lt;/strong&gt;, which are smaller tables with unique rows that also contain descriptive attributes you use to filter.&lt;/p&gt;

&lt;p&gt;The schema is the final blueprint that shows:&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 inside each table&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How the tables are connected to each other&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are 3 very common schemas in PowerBI:&lt;/p&gt;

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

&lt;p&gt;This is the easiest for beginners and highly recommended in Power BI. It looks like one big central table with many small tables around it.&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%2Ffxekxdeb5ve4eknjmk5h.gif" 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%2Ffxekxdeb5ve4eknjmk5h.gif" alt=" " width="439" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fact table has the numbers you want to add up: Amount, Quantity e.t.c.&lt;br&gt;
All the other tables are called dimension tables; they connect to the fact table usually with one number column, e.g., Customer ID, Product ID, or Date.&lt;/p&gt;

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

&lt;p&gt;It looks like star schema, but some dimensions are split further. It still has the fact table, but the dimension tables are split into extra levels.&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%2Fbr6ozvfsw99f1yxkkbo1.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%2Fbr6ozvfsw99f1yxkkbo1.png" alt=" " width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's best for very large data bases where storage matters a lot. Only use when you really need it, as it's harder and slightly slower than star schema.&lt;/p&gt;

&lt;p&gt;Something to know,&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships - How tables talk to each other
&lt;/h2&gt;

&lt;p&gt;In Power BI, it is a line connecting two tables so filters flow between them.&lt;br&gt;
Relationships almost always in good models → &lt;strong&gt;one-to-many&lt;/strong&gt; because it offers fast calculations, correct filtering, and no wrong totals, there's also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One Side&lt;/strong&gt;- Has unique values, for example, customer ID in customer table, each ID appears only once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Many Side&lt;/strong&gt;- Has repeating values, many rows can have the same values, for example, customer ID in sales table, same customer buys many times.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, stick with star schema, it's what most good Power BI models use.&lt;/p&gt;

</description>
      <category>data</category>
      <category>powerbi</category>
      <category>programming</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Introduction to Ms Excel for Data Analytics</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sun, 25 Jan 2026 16:16:15 +0000</pubDate>
      <link>https://forem.com/avedi/introduction-to-ms-excel-for-data-analytics-503a</link>
      <guid>https://forem.com/avedi/introduction-to-ms-excel-for-data-analytics-503a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkngfi4zy54lhp4wtxtuo.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%2Fkngfi4zy54lhp4wtxtuo.png" alt="Excel Basics" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Microsoft Excel?
&lt;/h2&gt;

&lt;p&gt;Ms Excel is a tool used for working with data. It's super easy to use, and you don't need any fancy tools installed, just the same Excel on your desktop or laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Does Excel Do?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Organize and clean data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Calculate data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find highest and lowest value &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filter data to narrow on specifics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create summary tables for your data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make appealing visuals and charts for your data &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Highlight numbers or characters in your data&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Now to the steps...&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Getting Your Data to Excel
&lt;/h2&gt;

&lt;p&gt;If you already have data saved in your device, open it in Excel by clicking open then browse and look for youra data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpo2nx10ehwrytvk57zrt.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%2Fpo2nx10ehwrytvk57zrt.png" alt=" " width="488" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're starting from scratch, click on new then open blank workbook.&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%2Faczq3ysqr4g9zj9drxeo.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%2Faczq3ysqr4g9zj9drxeo.png" alt=" " width="511" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clean your data correctly if you do have an existing data uploaded on your Excel by following these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Format the cells to auto fit in the cells if they aren't by clicking on the &lt;code&gt;Home&lt;/code&gt; ribbon, then the &lt;code&gt;Format&lt;/code&gt; tab and choose the cells you ant to autofit.&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%2Ffvxrqn8ntrx17uw9xg1r.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%2Ffvxrqn8ntrx17uw9xg1r.png" alt=" " width="360" height="211"&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%2Ftxn2fc2mea8aua5l2w12.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%2Ftxn2fc2mea8aua5l2w12.png" alt=" " width="355" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Format the columns to their respective inputs. Right click on any column you want to format cells, then click format and format as desired , if text format to &lt;code&gt;Text&lt;/code&gt;, if dates &lt;code&gt;Date&lt;/code&gt; e.t.c&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%2Fhacox61obxa71jaf6u77.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%2Fhacox61obxa71jaf6u77.png" alt=" " width="220" height="383"&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%2F9xplmkevf9p3bvkswph5.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%2F9xplmkevf9p3bvkswph5.png" alt=" " width="521" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Easy Calculations
&lt;/h2&gt;

&lt;p&gt;The biggest strength in Excel is formulas. Here are some beginner formulas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=SUM(B2:B32)&lt;/code&gt;→ total of numbers in B column&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=AVERAGE(C2:32)&lt;/code&gt; → average&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=COUNT(D2:D32)&lt;/code&gt; → how many cells have numbers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=MAX(E2:E32)&lt;/code&gt; → highest value&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;=MIN(F2:F32)&lt;/code&gt; → lowest value&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%2Fwt8absnvt3g8iiqaw63x.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%2Fwt8absnvt3g8iiqaw63x.png" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Sort and Filter
&lt;/h2&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click anywhere in your data table&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;strong&gt;Data&lt;/strong&gt; tab → &lt;strong&gt;Sort &amp;amp; Filter&lt;/strong&gt; → &lt;strong&gt;Filter&lt;/strong&gt;&lt;br&gt;
→ little arrows appear in every header&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you can sort from highest to lowest, filter dates or even search for specific names.&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%2F3vzik9blteq4ct4uiatk.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%2F3vzik9blteq4ct4uiatk.png" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking the dropdown arrow beside the title shows sort options and checkboxes to filter. &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%2Fzu5mr7w96dgykjpwk7rd.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%2Fzu5mr7w96dgykjpwk7rd.png" alt=" " width="349" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Conditional Formatting (Excel Highlights Important Stuff)
&lt;/h2&gt;

&lt;p&gt;This basically makes patterns appear visually so you can sort or update data as desired. Steps to do this:&lt;/p&gt;

&lt;p&gt;Click on the &lt;strong&gt;Home&lt;/strong&gt; tab → &lt;strong&gt;Conditional Formatting&lt;/strong&gt; &lt;br&gt;
→ little arrows appear in every format you want.&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%2F5uxpiezskobt8zx620eg.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%2F5uxpiezskobt8zx620eg.png" alt=" " width="800" height="106"&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%2Fc7h50hbwyxhvl4yvim7g.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%2Fc7h50hbwyxhvl4yvim7g.png" alt=" " width="189" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. PivotTables – The Most Powerful Beginner Tool
&lt;/h2&gt;

&lt;p&gt;This let's you summarize hundreds of rows in seconds.&lt;/p&gt;

&lt;p&gt;How to create one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click anywhere in your data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;strong&gt;Insert&lt;/strong&gt; tab → &lt;strong&gt;PivotTable&lt;/strong&gt; → &lt;strong&gt;OK&lt;/strong&gt; (new sheet usually best)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the PivotTable Fields pane (right side)&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%2F2esd7hpzod6lacy98i83.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%2F2esd7hpzod6lacy98i83.png" alt=" " width="163" height="128"&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%2Fjizvcm44924h3jdd5yej.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%2Fjizvcm44924h3jdd5yej.png" alt=" " width="392" height="245"&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%2F93j5imairtzvgwlwt86d.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%2F93j5imairtzvgwlwt86d.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Charts (Turn Numbers into Pictures)
&lt;/h2&gt;

&lt;p&gt;Make beautiful Charts in just 2 clicks. There are several charts in Excel, but for starters you only need this main 3: Column bar chart, Line chart and Pie Chart.&lt;/p&gt;

&lt;p&gt;How:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select your data (including headers)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PivotTable Analyze&lt;/strong&gt; tab → &lt;strong&gt;PivotChart&lt;/strong&gt; → pick one&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%2F8ko5owblcjae3g5wtppb.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%2F8ko5owblcjae3g5wtppb.png" alt=" " width="800" height="77"&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%2Freu43di64c92s50j0uga.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%2Freu43di64c92s50j0uga.png" alt=" " width="628" height="599"&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%2Fub610i0ij77ddeqflsa2.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%2Fub610i0ij77ddeqflsa2.png" alt=" " width="476" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can change colors,titles, e.t.c&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Paste or type data → make it a proper table (headers!)&lt;/li&gt;
&lt;li&gt;Home → Format as Table (optional but nice look + auto-filters)&lt;/li&gt;
&lt;li&gt;Add quick calculations at the bottom (SUM, AVERAGE…)&lt;/li&gt;
&lt;li&gt;Add filters / sort to explore&lt;/li&gt;
&lt;li&gt;Use Conditional Formatting to spot patterns&lt;/li&gt;
&lt;li&gt;Create a PivotTable for summaries&lt;/li&gt;
&lt;li&gt;Insert a chart from the PivotTable or raw data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's already real data analysis, now you are on your way to becoming a pro. &lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps for Beginners
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Practice with free sample datasets (search "Excel sample sales data csv")&lt;/li&gt;
&lt;li&gt;Learn these extra helpful functions: &lt;code&gt;IF&lt;/code&gt;, &lt;code&gt;VLOOKUP&lt;/code&gt;, &lt;code&gt;COUNTIF&lt;/code&gt;, &lt;code&gt;SUMIF&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Get comfortable with Tables (Insert → Table) — they make formulas and charts much smarter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Excel is friendly just start small, make mistakes and you'll be a pro in no time. &lt;/p&gt;

</description>
      <category>data</category>
      <category>beginners</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Git for Absolute Beginners: Understand Version Control, Track Changes, Commit, Push &amp; Pull</title>
      <dc:creator>Owen Avedi </dc:creator>
      <pubDate>Sat, 17 Jan 2026 15:22:45 +0000</pubDate>
      <link>https://forem.com/avedi/git-for-absolute-beginners-understand-version-control-track-changes-commit-push-pull-3a60</link>
      <guid>https://forem.com/avedi/git-for-absolute-beginners-understand-version-control-track-changes-commit-push-pull-3a60</guid>
      <description>&lt;h2&gt;
  
  
  A super simple guide to Git basics. Learn why version control is important, track changes, save snapshots (commit), send code to the cloud (push), and get updates from others (pull).
&lt;/h2&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%2F3u0f50pd2y39g8n5g40e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3u0f50pd2y39g8n5g40e.jpg" alt="Git for Beginners" width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've ever experienced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;loss of important code changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wanting to go back to a code that "worked yesterday." &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scared to break something that used to work &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wondering how teams work on the same project without interfering with each other&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then &lt;strong&gt;Git&lt;/strong&gt; is the one tool that solves all these. &lt;/p&gt;

&lt;p&gt;Git is the most popular &lt;strong&gt;version control system&lt;/strong&gt; simply because it lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Take snapshots of your project (commit)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Track exactly what changed and when &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back in time if something breaks &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work conveniently with others (push &amp;amp; pull) &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now to the essentials, nothing overwhelming, just some everyday commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What is Version Control?
&lt;/h2&gt;

&lt;p&gt;Let's say you have a project folder and it's the only one you have, &lt;/p&gt;

&lt;p&gt;Without git → You only have that one copy, and if you delete something or break the code, it's gone unless you manually saved copies or otherwise.&lt;/p&gt;

&lt;p&gt;With git → Every important change is snapshotted (a commit). Which means you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Read any previous project&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compare projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back to an older project &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let someone else add their own project safely&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Quick Setup
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://git-scm.com/install/" rel="noopener noreferrer"&gt;Git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Let git know who you are (do this after opening git)
&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;Use the same email as in your GitHub account &lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Core Git Workflow (The Repeat Cycle)
&lt;/h2&gt;

&lt;p&gt;Edit files → See what changed → Stage changes → Save snapshot (commit) → Send to cloud (push) → Get others' changes (pull)&lt;/p&gt;

&lt;p&gt;Let's go through each one of them step by step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create or move into a project folder
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir my-first-project
cd my-first-project
&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%2Fguwhckv427bw8p4ddie8.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%2Fguwhckv427bw8p4ddie8.png" alt=" " width="457" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Tell Git to start tracking this folder
&lt;/h2&gt;



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

&lt;/div&gt;



&lt;p&gt;(You only do this &lt;strong&gt;once&lt;/strong&gt; per project)&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Make some changes &amp;amp; see what's different
&lt;/h2&gt;

&lt;p&gt;Create or edit a file (e.g &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;app.js&lt;/code&gt;, &lt;code&gt;README.md&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;Ask git what changed?&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;It'll bring something like: &lt;/p&gt;

&lt;p&gt;Changes not staged for commit:&lt;br&gt;
  (use "git add &amp;lt;&lt;code&gt;file&lt;/code&gt;&amp;gt;..." to update what will be committed)&lt;br&gt;
  modified:   index.html&lt;br&gt;
  new file:   styles.css&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Untracked files&lt;/strong&gt; - new files Git doesn't know yet&lt;br&gt;
&lt;strong&gt;Modified&lt;/strong&gt; - Git knows but have changes &lt;/p&gt;
&lt;h2&gt;
  
  
  Step 4: Choose which changes to save (Staging)
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Add one file
git add index.html

# Add everything that changed
git add .

# Or add interactively
git add -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;git status&lt;/code&gt; now shows: &lt;/p&gt;

&lt;p&gt;Changes to be committed:&lt;br&gt;
  new file:   index.html&lt;br&gt;
  modified:   styles.css&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 5: Save the snapshot (Commit)
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "Add homepage layout and basic styling"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Make the message short and clear, e.g: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"Add user login form" &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Fix mobile menu not closing"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Update README with installation steps"&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Step 6: See the history of snapshots
&lt;/h2&gt;


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

&lt;/div&gt;


&lt;p&gt;Example output of what it'll show:&lt;/p&gt;

&lt;p&gt;a1b2c3d Add homepage layout&lt;br&gt;
e4f5g6h Initial project structure&lt;/p&gt;

&lt;p&gt;Each line - snapshot with its unique ID &lt;/p&gt;
&lt;h2&gt;
  
  
  Step 7: Send your work to the cloud (Push)
&lt;/h2&gt;

&lt;p&gt;First, create an empty repository on GitHub.&lt;br&gt;
Then connect your local project:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Then send your commits:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;(If default name is &lt;code&gt;master&lt;/code&gt; instead of &lt;code&gt;main&lt;/code&gt;, replace &lt;code&gt;main&lt;/code&gt; with &lt;code&gt;master&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;From here now, you can just do:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 8: Get changes from others/another computer (Pull)
&lt;/h2&gt;



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

&lt;/div&gt;



&lt;p&gt;This does 2 things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download new commits from the remote (fetch)&lt;/li&gt;
&lt;li&gt;Merges them into your current branch&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: Always &lt;code&gt;git pull&lt;/code&gt; before starting new work &lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Reference (Commands and when to use them)
&lt;/h2&gt;

&lt;p&gt;See what changed - &lt;code&gt;git status&lt;/code&gt; - All the time!&lt;br&gt;
Add specific changes - &lt;code&gt;git add filename&lt;/code&gt; - Before committing&lt;br&gt;
Add all changes - &lt;code&gt;git add .&lt;/code&gt; - Common &amp;amp; fast&lt;br&gt;
Save snapshot - &lt;code&gt;git commit -m "message"&lt;/code&gt; - After staging good changes&lt;br&gt;
See commit history - &lt;code&gt;git log --oneline&lt;/code&gt; - When you want to remember what you did&lt;br&gt;
Send to GitHub - &lt;code&gt;git push&lt;/code&gt; - When your work is ready to share/backup&lt;br&gt;
Get latest changes - &lt;code&gt;git pull&lt;/code&gt; - Before starting work / after coming back&lt;br&gt;
Undo staging (if you added by mistake) - &lt;code&gt;git restore --staged filename&lt;/code&gt; - Oops moments&lt;/p&gt;

&lt;p&gt;That's it! You now know how to track changes, save versions, push your work, and pull updates.&lt;br&gt;
Happy coding and committing! &lt;/p&gt;

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