What Skills Do You Need To Be A Power BI Developer?
Updated: Dec 14, 2020
Hi there, my name is Brent and I've been a Power BI developer for a little over 5 years. In this article, I'll go over some of the main skills I think you will need to land a sweet job as a Power BI developer.
Power Query (M)
1) Data Visualization
Data visualization is the product of graphic design, math and business. I put this as #1 because you can have all the skills and knowledge in the world, but if you make a crappy looking dashboard then no one will want to look at it. When building my own dashboards, I always look at what the best companies are doing, like Google for example. I think their designs are simple, powerful and easy to understand. In fact, I would encourage anyone learning about data visualization to try and re-create a dashboard that looks like a Google Trends page. Here's one I did below. Check out my other post where I go into detail about this: Dashboard Design Tips: Google
2) Relational Databases
Understanding how data in one table relates to data in another table is crucial in developing more advanced analytics. Even though you can get away with importing flat files into Power BI, there are many cases when you need to work with a full-fledged data model, links and all.
In particular, having a grasp of join types is important. Left, Right, Outer, Inner, Anti, etc. These can all be defined within the model and have a big affect on the calculations in your dashboard. Even filters are affected based on how the relationship is defined; either single or bi-directional (this can cause some serious confusion to developers who don't understand this).
DAX is one of those things that look simple, but under the hood contains some powerful and complex stuff. One of the things that was surprising to me when I first began learning DAX was that it was more like a programming language than I initially thought. I mean, you can create variables to reuse later in the calculation and everything (which, indeed you should)!
Knowing the proper way to write DAX not only feels cool, but it also brings some performance efficiencies to the table. Take a look at this DAX formula:
Total Sales % = DIVIDE([Unit Sales YTD], CALCULATE([Unit Sales YTD], All('Company Sales')), 0)
That can (and should) be written more like this:
Total Sales % = var totalSales = CALCULATE([Unit Sales YTD], All('Company Sales')) var selection = [Unit Sales YTD] return DIVIDE(selection, totalSales, 0)
Check out my other post DAX Formulas You Should Know.
4) Power Query (M)
Power Query, similar to DAX, is a technology that has more than meets the eye. It's main purpose is to bring in data and apply any needed transformations before it hits the data model. Of course, you should always try to push back these preparations as much as possible to the source (i.e. SQL Server, etc.). However, there may be situations in which IT doesn't trust you to have edit/delete permissions on the database, in which case you need to be comfortable with Power Query. But really, how much damage can you do, really? ;)
If you are not careful, the Power Query steps in the editor can get real messy real quick. If you want to be a Power BI developer, you should know how to use the advanced editor to make performance optimizations - using clean code and commenting when necessary. You should definitely know how to write your own custom functions.
// Function that multiplies a number by 2 (x as number) => as number let y = x * 2 in y
When connecting to a SQL database, Power Query attempts to create its own SQL statement. Knowing a little SQL can enable you to go and write your own, more performant SQL statement within Power Query. Keep in mind that SQL queries are limited to SELECT statements.
If you are lucky enough to have "write" permissions on a database, it'll also be handy to write your own queries/views to use in Power BI (see #4 above).
Communication probably should have been listed as #1, but I put it last because it's kinda one of those skills that every job needs. Communication is arguably one of the most important yet difficult skills to learn on this list - it's a soft skill.
Why? Understanding your client's (or boss's) request correctly in the beginning can save so much time and money. Clients don't always have the clearest ways of communicating their needs, and it's our job to bring that to light at the start of a project. It's not always easy to ask for clarification. I'm always concerned that my boss will think I'm incompetent at my job, but in the end it always pays off to begin with a solid understanding. Your client/boss will thank you later for it. Some clarifying questions you can ask are:
What is the main goal of this report?
What are top 3 metrics you need to see on this dashboard? (need being a keyword here.)
Who is this dashboard for? Who is going to be using it most?
Does the data need to be streaming?
Of course, there are many other skills and knowledge sets that will help - big data concepts, cloud computing, network servers, etc. But I believe the ones listed above are some of the most important.