Introduction :
This project includes a survey on developers’ current use of
programming languages, databases, platforms, and operating systems, as
well as their learning preferences for the future. It also gathers
additional demographic information to analyze developers’ preferences
and trends in technologies they plan to work with.
Case Study:
Steps to prepare and clean the data using built-in Power BI analysis
tools. The goal is to ensure data quality and formatting, which helps in
drawing accurate conclusions about developers’ skills and trends.
Requirements:
- Download: survey_data_demographics
- Get Data
- Transform Data
- Ensure unique values in the
Respondent
column and
remove duplicates.
- Change the data type of the
Respondent
column to
Whole Number.
- In the
Main Branch
column, change:
- “I am not primarily a developer, but I write code sometimes as part
of my work” to not developer
- “I am a developer by profession” to profession
- Rename the second
Open-Source
column to
Software Quality Comparison.
- Modify the values in the
Open-Source
column as follows:
- “The quality of OSS and closed source software is about the same” →
Quality is the same
- “OSS is, on average, of HIGHER quality than proprietary / closed
source software” → Quality is higher
- “OSS is, on average, of LOWER quality than proprietary / closed
source software” → Quality is lower
- In the
Employment
column, remove “-” to make it
“part time” or “full time”.
- Use Split in the
Ed Level
column to separate the values
after the “)” and delete the created column with parentheses, leaving
the following:
- Bachelor’s degree, some college, Master’s degree, Primary, Associate
degree, Doctoral degree, I never had any formal education, Not Selected,
Professional degree, Secondary school.
- Age / Respondent = Whole Number
- All other columns = Text
Data Preparation for Technologies Survey
Download: survey_data_technologies
Steps:
- Get Data
- Transform Data
- Delete the first row from the table using:
- Remove Rows → Remove Top Rows
- In the
Respondent
column, use Sort
(Descending) to check the length of the column, then
Clear Sort.
- Note that there are duplicates in the
Respondent
column. Use a filter to display Participant ID 62. If
you delete the duplicate here, some data will be lost, so leave it as
is.
- Change the data type in the
Respondent
column to
Whole Number.
- Set the remaining columns’ data type to Text.
- Change Other(s): in all relevant columns to
Other.
- Replace Values null cells in the
Dev Environ
column
with “Not Defined”.
- Create a duplicate column for the
Dev Environ
column,
which will generate a new table. Apply the Length
function to display numbers, then delete the new column afterward.
- Delete the
Blockchain Is
column.
- Verify all unique values and statistical operations by using:
- View → Column Quality → Column Profile
- Click Close & Apply.
Case Study:
Relationships between tables are essential to link and integrate data
in Power BI. Reviewing these relationships ensures the accuracy of
analysis and improves performance by ensuring data is properly
related.
Create Relationship:
- Drag
Respondent
from technologies to
demographics.
- Both: The relationship will be from
technologies (Many) to demographics
(One).
- Activate the Active option.
Using DAX to Find the Following:
This document provides the DAX formulas used to calculate the
following:
- Respondent Count: Calculates the unique number of
respondents in the survey.
- Man Count: Calculates the number of male
respondents.
- Woman Count: Calculates the number of female
respondents.
Copy Code
Respondent_Count =
DISTINCTCOUNT(‘survey_data_technologies’[Respondent])
Man_Count = CALCULATE(COUNTROWS(‘survey_data_demographics’),
‘survey_data_demographics’[Gender] == “Man”)
Woman_Count = CALCULATE(COUNTROWS(‘survey_data_demographics’),
‘survey_data_demographics’[Gender] == “Woman”)
Visualization:
Case Study:
These charts help in understanding the demographic distribution of
developers and provide insights into current trends in the field of
programming. The goal is to enhance recruitment and training strategies
based on this data.
Report: Future Technology Trend
Add Three Card Respondent_Count
,Man_Count ,Woman_Count
title (Top Ten Languages Currently Used by Developers)
- Chart Type: Column Chart
- Fields:
- X Axis: Language Worked With (Languages Currently
Used)
- Y Axis: Respondent Count (Measure that calculates
the number of respondents)
Steps to Create:
- Drag the
Language Worked With
field to the X-axis.
- Drag the
Respondent Count
measure to the Y-axis
(instead of using the count of the Language Worked With
field).
- Apply a filter to show the Top Ten Languages:
- Select the filter on the X-axis.
- Choose Top N in the filter options.
- Enter 10 in the Top N field.
- In the By value field, select
Respondent Count
.
title(Top Five Databases Currently Used by Developers)
- Chart Type: Pie Chart
- Fields:
- Axis: Database Worked With (Databases Currently
Used)
Steps to Create:
- Drag the
Database Worked With
field to the Legend area
(or Values area depending on the visual type).
- Drag the
Respondent Count
measure into the Values
area.
- Apply a filter to show the Top Five Databases:
- Select the filter in the Values area.
- Choose Top N in the filter options.
- Enter 5 in the Top N field.
- In the By value field, select
Respondent Count
.
title(Top Seven Web Frameworks Currently Used by Developers)
- Chart Type: Column Chart
- Fields:
- X Axis: Web Frame Worked With (Web Frameworks
Currently Used)
- Y Axis: Respondent Count (Measure to calculate the
number of respondents)
Steps to Create:
- Drag the
Web Frame Worked With
field to the
X-axis.
- Drag the
Respondent Count
measure to the Y-axis
(instead of using the count of the Web Frame Worked With
field).
- Apply a filter to show the Top Seven Web
Frameworks:
- Select the filter on the X-axis.
- Choose Top N in the filter options.
- Enter 7 in the Top N field.
- In the By value field, select
Respondent Count
.
Report: Future Technology Trend
title(Top Ten Languages Developers Plan to Learn Next Year)
- Chart Type: Column Chart
- Fields:
- X Axis: Language Desire Next Year (Languages
developers plan to learn next year)
- Y Axis: Respondent Count (Measure to calculate the
number of developers planning to learn each language)
Steps to Create:
- Drag
Language Desire Next Year
to the X-axis.
- Drag the
Respondent Count
measure to the Y-axis.
- Apply a filter to show the Top Ten Languages:
- Select the filter on the X-axis.
- Choose Top N in the filter options.
- Enter 10 in the Top N field.
- In the By value field, select
Respondent Count
.
title(Top Five Databases Developers Plan to Work with Next
Year)
- Chart Type: Pie Chart
- Fields:
- Axis: Database Desire Next Year (Databases
developers plan to work with next year)
- Values: Respondent Count (Measure to calculate the
number of developers planning to work with each database)
Steps to Create:
- Drag
Database Desire Next Year
to the Legend area.
- Drag the
Respondent Count
measure to the Values
area.
- Apply a filter to show the Top Five Databases:
- Select the filter in the Values area.
- Choose Top N in the filter options.
- Enter 5 in the Top N field.
- In the By value field, select
Respondent Count
.
title(Top Seven Web Frameworks Developers Plan to Use Next
Year)
- Chart Type: Column Chart
- Fields:
- X Axis: Web Frame Desire Next Year (Web frameworks
developers plan to use next year)
- Y Axis: Respondent Count (Measure to calculate the
number of developers planning to use each web framework)
Steps to Create:
- Drag
Web Frame Desire Next Year
to the X-axis.
- Drag the
Respondent Count
measure to the Y-axis.
- Apply a filter to show the Top Seven Web
Frameworks:
- Select the filter on the X-axis.
- Choose Top N in the filter options.
- Enter 7 in the Top N field.
- In the By value field, select
Respondent Count
.
Report: Demographics Technology Trend
title(Respondent Count by Gender)
- Chart Type: Donut Chart
- Fields:
- Axis: Gender (Gender distribution)
- Values: Respondent Count (Measure to calculate the
number of developers by gender)
Steps to Create:
- Drag
Gender
to the Legend
section.
- In Values, select the
Respondent Count
measure to calculate the number of developers by gender.
- Filter the data to show the gender distribution.
title(Respondent Count by Age)
- Chart Type: Line Chart
- Fields:
- X Axis: Age Bin (New Group) (Age groups)
- Y Axis: Respondent Count (Measure to calculate the
number of developers in each age group)
Steps to Create:
- Drag
Age
to Bins and select
New Group.
- Group
Age
into bins (groups) of 10 years each.
- Drag
Age Bin
to the X-axis.
- Drag
Age Bin
again to the Y-axis.
- Set the Y-axis to use
Respondent Count
to calculate the number of developers in each age group.
- Apply a Line Chart to visualize the
distribution.
title(Country by Gender and Education Level)
- Chart Type: Matrix
- Fields:
- X Axis: Education Level (Education levels)
- Value: Man_Count / Woman_Count
- FORMAT: layout and style presets (style-
condensed)
- font: Arial(20)
- go to the next level in the hierarchy / Drill up:
There is a navigation button above the Matrix
title(Respondent Count by Employment)
- Chart Type: Area Chart
- Fields:
- X: Employment (Employment )
- Y: Respondent Count (Measure to calculate the
number of developers by employment type)
Add slicer by (country)to which sync slicers are
applied from the View tab, appear on the first report page only and
interact with the rest of the reports
Make your reports accessible with the Themes
feature of the View tab
Use the tooltip feature of format your visual and
shadow feature
Use report page navigation/layout
mobile/selection
using Bookmarks
For any questions or concerns, feel free to reach out to the
Arab Data Hub
الله ولي التوفيق