Podcast

063 - Jeff Hicks talks Powershell

January 12, 2021

Jeremy speaks with Pluralsight author and Microsoft MVP Jeff Hicks about Powershell, DevOps and skill development.


If you enjoy this episode, please consider leaving a review on Apple Podcasts or wherever you listen.

Please send any questions or comments to podcast@pluralsight.com.

Transcript

Speaker 1:

Jeff Hicks is an IT veteran with over 25 years of experience. He spent decades working in IT infrastructure as a consultant and specializes in Windows Systems, Automation and PowerShell. He's a Microsoft MVP in his authored many books on PowerShell, as well as Pluralsight courses. So today we're going to talk about PowerShell. So let's welcome Jeff Hicks. So how are you today, Jeff?

Jeff Hicks:

I'm doing good. How are you?

Speaker 1:

I'm doing pretty well. So tell us a little bit about yourself and what you do.

Jeff Hicks:

Well, I am, that's always a good question, people say I go to parties, what do you do? Go, I don't, how can I say this? Well, I'm kind of an IT pros IT pro I'm an independent author, teacher, mentor, content developer. I write books. I write content for websites. I create courses, Pluralsight. I do a training primarily for IT pros. I've been in it for 30 something almost 30 years now. And I'm now reached to the point where I just do in essence a lot of teaching and mentoring. So as, always come down to it, I'm an author slash teacher.

Speaker 1:

Awesome. So, how did you get into teaching? Was that so something that you always wanted to do or was it something that kind of came up and you decided was fun?

Jeff Hicks:

I have actually kind of always wanted to be a teacher. My original plan actually was to teach college theater, acting and directing actually have a Masters Fine Arts in theater directing. And so that was the original plan was to go into college teaching. Life happens, those jobs didn't, weren't around. Way back, a long time ago, I got a little IT related job and one thing led to another. And all of a sudden I'm here talking to you.

Speaker 1:

Awesome. So, is there any overlap in the skills that are required for theater and teaching?

Jeff Hicks:

Well, for me there is because remember, my background in theater anyway was directing. And so I was always like behind the scenes, making sure things happen for everyone. And, IT is kind of the same way. We're responsible making sure that the servers are up and the apps are up and the network is running. So that, the C level people and the customer service people and the staff, so they can all do their job and get the company running and making money. So that kind of behind the scenes' attitude and perspective, that's, I've always kind of liked that. I've never, I was never a good actor. I was never necessarily comfortable on stage, but I was much more comfortable behind the scenes making things happen. And to me, that's what IT is all about.

Speaker 1:

Awesome. So how did you first get interested in PowerShell?

Jeff Hicks:

Well, PowerShell is just kind of a natural progression from where I started my career. So when I started back in IT, I really started back in the days of DOS 3.3. And I discovered batch file. And I discovered that, oh, I can put these commands in a file and just run this real simple command of the prompt and all this magic happened. I was just, it just, it was fascinating cause it, to me, it was like magic. So I got really good at batch files and then bbscript came along and I get really good at that. And then PowerShell came along. So I've always been fascinated with this automation idea where I can because I'm not a developer, but I know that I can organize these commands in a certain way and press a button. And then everything happens. And to me, that's just even to this day, almost 30 years later, that's still just fascinating and amazing. I get great comfort and I try to spend now a couple, a little bit time each day, just writing code. Even if it's just silly code, because I find it very calming and relaxing to just be writing, PowerShell command.

Speaker 1:

Absolutely. I definitely that way [crosstalk 00:04:20]. I definitely understand that even though it's not always calming or relaxing for me, there are times where it begins to be frustrating, but yeah, that's pretty cool that you bring that up. I think that's actually where I got started also was with DOS a little bit later. I think it was in the DOS like five days is when I got started and I really miss DOS still to this day seems [inaudible 00:04:46] that this is the cool things that you could do with it. PowerShell is getting more popular. Like popularity is rising quite a bit. Why do you think that is?

Jeff Hicks:

Well more and more people are realizing even though PowerShell has not been out since 2006, there's still people who've been in IT for that long who are now realizing yeah, I guess I better learn this PowerShell thing. And then they tell me later go, God, why did I wait so long to do this? But one of the reasons I think people are moving to PowerShell, decide they need to learn it is the Cloud. I mean really from Microsoft's perspective, the Cloud is driving everything and for a lot of organizations being able to move to the Cloud and manage in the Cloud that requires an automation skillset and requires Cloud type languages. PowerShell is one of those languages. It's not the only one. There may be a need for you to learn Python or Ruby or you know, some other languages but for a lot of people, PowerShell is kind of the least common denominator.

In fact, really what it is, it's we referred to it as a GLoo language so we can use PowerShell and it can be applied for a lot of different things, whether you're working with Azure or AWS, SharePoint or SQL, or Office 365 or On-Prem Active Directory, you can combine a lot of these things and PowerShell is kind of the central language. So once you learn PowerShell, this is what I always teach people. Once you understand the basics and understand the concepts and the syntax and all of that and the paradigm, it doesn't matter whether you're working with a file object on a local machine or a Hyper V cluster up in Azure, it's still, but the principles is still the same. The commands obviously will change, but you're gonna know how to work with those commands because you know, how PowerShell works. So learning the fundamentals of PowerShell enables so much more, that can happen in your career.

Speaker 1:

Yeah, it seems like it would almost be a core skillset at this point with the Cloud.

Jeff Hicks:

It is. In fact, I people I always still, will get asked, hey, is there going to be a Microsoft certification on PowerShell and the answer no, there's no reason for there to be a core PowerShell exam. What you will find is when you take the certification exams, just on the Azure stuff, there'll be PowerShell related questions. So you need to learn PowerShell because how are we going to apply it? For the most part, Cisco stuff aside, we don't have a TCP/IP exam. If you're an IT pro it's expected that you know TCP/IP and you may have exam questions, they're going to make sure that you understand networking and that sort of thing, but we don't have a core networking exam anymore. So PowerShell's kind of the same way. It's kind of a core, a core technology that people need to know.

Speaker 1:

Absolutely. And do you think the rise of the DevOps movement has changed that at all?

Jeff Hicks:

I don't know if it's changed it as much as maybe accelerated because more and more organizations are moving to DevOps or at least leaning in that direction. And in order for the DevOps paradigm to really take hold, you have to have, and embrace some sort of automation and that automation often can include PowerShell. Not always, obviously, but for a lot of places, PowerShell is a big part of that. And if you, if you think of things like Docker and Kubernetes, again, we're not going to manually go through and okay, I need to spin up this container and do this and do all the stuff you have to do to get Kubernetes and all that stuff running. You're going to build an automated solution and PowerShell may be a big part of that.

Speaker 1:

Yeah. So do you know of any new things happening with PowerShell that are coming down the pipe that we can expect?

Jeff Hicks:

Not really. And in some ways that's a good thing because PowerShell's now open source. So I'll find GitHub in the PowerShell repository. They make it very clear about what kind of things they are working on. What I would say is that I know the PowerShell team is always working on trying to make PowerShell faster and make it easier to use specifically is how, how they're going to implement those things. You know, I don't know, PowerShell is actively being developed. We'll see, we should be coming up here later this year. We should see the release of 7.1. That we are going to see more active publish releases, Microsoft spending a lot of time and money on visual studio code, for example. So you're going to see more from Microsoft over the next well, indefinite timeframe, because PowerShell is not going away. This is how we're doing things. And you are kind of silly if you think PowerShell is just a fad because if, it's not a fad and by now in 2020 going on 2021, people should hopefully have gotten that memo.

Speaker 1:

Yeah, absolutely. And you bring up code, would you say at this point, is code one of your main IDEs for developing PowerShell or you're still using IT? [crosstalk 00:10:31].

Speaker 2:

I decided, I made the decision a couple years ago to just switch over and use BS Code pretty much extensively, exclusively for all of my work. Cause I knew I had to learn it and the only way I was going to learn it was to actually start using it. There is a bit of a learning curve. It's a developer's tool kind of written for developers. So there are some features to it and some aspects to it that I kind of personally have trouble getting my head around because my head doesn't, I don't think that way, but I use it all the time. And I tell people, especially those people, new to PowerShell. Even though the Partial IC is not going away, it's also no longer being developed. If you have to learn something new, if, if you're going to have to learn how to use the Partial IC, you might as well spend the time and learn to use as VS Code for one thing, if nothing else it's actively being developed, we get monthly updates and it's also cross platform. So maybe today you're in a Microsoft desktop, but you know, next year your company says, oh, what, okay, everyone's going to Ubuntu. And so, oh, well, okay, no problem. You know VS Code because it's the same on Linux as it is on Windows or Mac or for that matter too. So taking the time to learn to use VS Code is definitely worth your investment.

Speaker 1:

So, that's good to know. I was kind of curious about that. Cause I spent years in the ISC and lately with like personally, I've tried to migrate everything, the code for the same reason that you say, if you're going to write from language to language, having the same interfaces is really nice.

Jeff Hicks:

You can make VS Code look and behave like the ISC. And there are some nice features once you discover them like being able to format your document and much easier search and replace and being able to, I got a script and it's got all aliases, aliases are bad in the scripts. So the IC or I'm sorry, [crosstalk 00:12:33] tell VS Code replace all the aliases, done. So there are a lot of great time saving features once you learn where they are. It's definitely worth the time to use, use and learn a VS Code.

Speaker 1:

So this is something interesting that I saw on your blog. And so I wanted to share with the audience, what can you tell us about the Iron Scripter challenge?

Speaker 2:

Oh, okay. So Iron Scripter is, there's kind of two parts of this. The main part where this kind of originated from was the DevOps collective, which runs PowerShell.org site also runs the PowerShell and DevOps global summit held every spring. We of course didn't have one this year. Part of that event, we have an event at the end of the thing called the Iron Scripter, where we've got teams of people and we give them a challenge and they have to come up with code of the Iron Scripter from TV in order to solve the puzzle. I kind of run the site for Powershell.org. And I started deciding to give people small little challenges and to work on just to expand their scripting skills. They're not. And, and I should say they range in complexity. I try to tag them and say, this is a beginner challenge.

This requires intermediate, this requires advance. And then I want people to work on it and then, submit a link to their solution so people can see how they, how they solved it. Cause the best way to, as I said to, to learn Powershell is to do it. But sometimes people kind of get stuck and don't know what to, what do I do? I don't know what to do with it. You know, I don't know how I'm going to apply yet. So, so here's a little exercise go and see if you figure out how to accomplish this task. Cause in the process of figuring that out, you will learn even more Powershell and hopefully at the end, you each have something that is functional and useful to you.

Speaker 1:

Yeah. That's awesome. Yeah. That's great. So you're working on kind of an entirely new track for Pluralsight around Powershell. What can you tell us about that?

Jeff Hicks:

Yeah. We, because we have now Powershell seven and Microsoft wants people when they say Powershell. That's what they mean. They mean the Powershell that runs cross platform and behaves pretty much the same as Windows Powershell. Although, there are certainly some other differences. We also know there are still people, who are just new coming into Powershell and those people are going to be starting, presumably with Powershell seven. So we have built an entirely new track that is aimed at people coming in, say, I need to learn Powershell. I'm going to start with Powershell 7. So we start with the bare bones, basics, same kind of things that we did in Windows Powershell. So should we go back and look at my early Windows Powershell courses for how to get started, there will be some overlap because the fundamentals really don't change that much, but we focus and demonstrating everything on Windows Powershell.

So, that track is being worked on. Now I've done a couple courses. I know another authors who are working on some other courses on that. I'm not quite sure who else is in the pipeline to get other stuff done. But we're trying to kind of not rebrand, but add an additional Powershell course because also there'll be companies that will say, we are now going to focus on Powershell 7. That's going to be our standard. And we need our people to be, to learn Powershell 7. So now we will have something that they can point to and go to.

Speaker 1:

Yeah. That's great. So what advice would you give to someone wanting, to learn Powershell for the first time? Like how should they go about it?

Speaker 2:

Well, now the easy answer, just say do it, but that's kind of a flipping answer. It's either boy, that's the tough part is it depends on the person. Depends on how you learn. Some people learn best by reading a book. Some people learn by looking at YouTube videos, that's all they need and they can figure out everything else on their own. Some people need a full blown and instructor led, in-person training class. Some people can do, our Pluralsight video. So you need to, first of all, figure out, okay, what type of learner am I? And then figure out where I'm going to go on. On my blog I actually have a page called Essential Powershell Resource. So if someone's new to Powershell, let's say, okay, here are some books you can start with. There are some videos you can start with, but you just kind of have to expose yourself to the fundamentals. I actually just did a presentation lesson on how to teach Powershell. And there are certain commands and certain approaches that I take when I'm teaching someone completely new things that I want people to focus on. If you are teaching yourself, you need to understand the Powershell paradigm, objects in the pipeline. There are some command lists that you need to make sure you understand. If you know how to use, Get-help, Get-Command, Get-Member, at least those three and ideally Select-Object. If you know how to work with those cmdlets you can pretty much do anything in Powershell and continue to teach yourself.

Speaker 1:

Yeah, that's great. And so what is the URL of your blog for people watching?

Jeff Hicks:

It's jdhitsolutions.com/blog or if you find me on Twitter, I think I have the link in my Twitter bio.

Speaker 1:

Awesome. Well, thank you for talking to us and being with us today, Jeff.

Jeff Hicks:

Oh, sure. Anytime. Glad I could be around.