It’s never too late to start learning PowerShell

It’s 2018 now and you might think who doesn’t know PowerShell yet. Although I’ve seen the number of people using PowerShell increasing over the past years, there’s still plenty of people out there that have the learning curve for PowerShell ahead of them. A few years ago, when the use of PowerShell got traction amongst many IT professionals the web was full of learning resources by means of blog posts, podcasts and online trainings. It seems that nowadays we expect everyone to be past the beginner’s level and so the type of content that is shared within the community is slightly changing to more advanced topics as well and that’s good for those that are riding the PowerShell wave already. However, let’s take into consideration that even in 2018, twelve years after PowerShell (Monad) arrived there are people that just start their journey into PowerShell. Think of the younger generation of IT professionals who spend the last ten years in school or the senior IT pro who’s changing their career into a field where PowerShell knowledge becomes inevitable.

I decided to write this blog post because I do frequently get the question “I want to learn PowerShell, where I should start?” Here’s my personal advice I usually share.

You need to know the past to understand the present” – Carl Sagan

It all started with the Monad Manifesto – the Origin of Windows PowerShell

There are many sources available to start learning PowerShell. Online Trainings, Books, Podcasts, and Blogs. Which one is best for you really depend on your preferred learning style. Personally, I use a combination of everything.

I really recommend start watching the below two online trainings. They are broken up into separate modules, so you can start and stop as it fits your time. Take them during lunch, while commuting or on a rainy Sunday. Ignore the fact that the courses are based on PowerShell version 3.0 it’s all still valid, with the newer versions of PowerShell things just get better.

  1. Microsoft Virtual Academy – Getting Started with Microsoft PowerShell. An online training provided by Jason Helmick and Jeffrey Snover. A great place to start your PowerShell journey.
  2. Microsoft Virtual Academy – Advanced Tools & Scripting with PowerShell 3.0 Jump Start.
  3. Microsoft Virtual Academy – What’s New in PowerShell v5

Testing nowadays has become an important topic, especially when writing PowerShell Modules or dealing with Continuous Integration.

  1. Microsoft Virtual Academy – Testing PowerShell with Pester

If you are in the business of managing server infrastructure on-premise or in the Cloud, you should definitely take these trainings as well.

  1. Microsoft Virtual Academy – Getting Started with PowerShell Desired State Configuration (DSC)
  2. Microsoft Virtual Academy – Advanced PowerShell Desired State Configuration (DSC) and Custom Resources.

Whether you took the first three or all the above online training courses, by now you should have a good idea of what you can do with PowerShell.

Prefer Reading? There are plenty of books about PowerShell. Some I recommend are:

  1. Learn Windows PowerShell 3 in a Month of Lunches by Don Jones
  2. Scripting and Toolmaking, The DSC Book and Become hardcore extreme black belt PowerShell Ninja Rockstar are also authored by Don Jones.
  3. Windows PowerShell Cookbook by Lee Holmes
  4. PowerShell.org – more eBooks are available here

Blogs – An absolute great resource for learning PowerShell is the “Hey, Scripting Guy! Blog“. The blog started with tips and trick for Windows Scripting Host, but over time became one of the best sources for PowerShell tips and tricks. Starting with “How Can I Use Windows PowerShell to Start a Service on a Remote Computer?” For many years Ed Wilson shared daily tips and tricks and people from the community share their knowledge and experience in the Weekend Scripter series.

The PowerShell Team Blog keeps you up to date everything PowerShell.

There are so many other great blogs out there, it would be unfair to create a list here imposing that these would be the best, once you start to actively engage with PowerShell you’ll find the ones that fit best for you.

Video’s – There are plenty of videos from various conferences available online, just search for PowerShell Ignite, PowerShell psconf, powershell azure etc.

GitHub – Learn from others, These days many IT Pro’s share their PowerShell code on GitHub, just search for PowerShell and browse though other people’s code, copy paste use the code, as long as you understand what it does.

PowerShell Help

Get-Help and About are your best friends.

Hands-On

So now you should have enough information to start with. You will only learn PowerShell by using it. Be patient, don’t put the bar too high, you won’t become an expert in a week or even a year. In your daily job, whenever you’ve got something to do, ask yourself “Can I do this with PowerShell?”.

I often hear, well I might be able to do it with PowerShell, but I don’t have time for it, I need to get the job done by tomorrow. Well if that’s the case, and you really don’t have the time, do the job, and then afterwards think of how to do it with PowerShell. You will see, the more you use PowerShell the more “Powerful” you get. And believe me, one day, you’ll be working on a task and it just becomes natural to do it with the help of PowerShell.

Your initial scripts will be just simple one liners, then over time you’ll be writing functions, use parameters, use variables and most important pay attention to write your scripts so that others can re-use them.

Learn from others, continue to actively follow and even engage in the community through GitHub, forums or speak with peers and friends who use PowerShell already. Don’t fear to ask questions, everyone has been there before.

To all those that start learning PowerShell, Good Luck!

…. Gong back the memory lane.

Windows PowerShell: Origin and Future

Don Jones and Jeffrey Snover: The Value of Windows PowerShell for IT Professionals

Leave a Reply

Your email address will not be published. Required fields are marked *