As you get more experienced in a particular subject it's common to become lazier and lazier as you learn more and more.
I find that my learning is directly negatively correlated to my experience in a subject. Why? It's because at some point you get "good enough".
Let's take PowerShell, for example. I believe I'm "good enough" at it right now. I can generally automate just about any common sysadmin task that I need to without The Google. I've learned enough Powershell, as a language, and how to apply common best practices for common situations I run into like getting events from event logs, testing a connection to a remote server, querying WMI, etc. If, for some reason, I can't figure out how to perform a certain function I can always fire up Google and figure it out.
If I'm just "good enough" to where I can do 99% of the tasks I need to get done then what's the point of learning more? I know everything I need to, right? No! That can be a bad mindset to get into.
I say it can be a bad mindset because it's not inherently bad if that's not your goal. If you're a sysadmin and you just use Powershell to automate some of your most time-intensive tasks and are happy to move on then doing things "good enough" may be fine with you. You're happy because you automated XYZ task, saved the company thousands of dollars and pleased your boss. Hooray! You're pragmatic and "good enough" to shine for your non-technical boss and get that big raise. That's great! I'm happy for you. You're using PowerShell as a tool to make your job easier. There's nothing wrong with that. This is probably where 90% of the IT pros are.
This leaves the other 10% of Powershell users (me included). I'm "good enough" yet I still feel like I'm missing something. I can do as I always have and issue a WMI query for those 100 servers using
Get-WmiObject , for example, but it'd be more efficient to use
Why learn the obscure
Filter syntax with
Get-AdComputer when you can use the more familiar
Where-Object �clause? Both get you the end result, right? Yes, but one could potentially take seconds vs. minutes. If you find yourself constantly thinking about these kinds of things you're probably in the other 10%.
The other 10% care about learning the best way to get a task done. They care about not only getting the job done but doing so in the fastest way possible, ensuring scripts are readable by others and are easily extensible. They care about when or when not to create a function instead of a bunch of procedural code. They care enough to run Pester tests against their scripts to ensure they've accounted for as many variables as possible. Powershell scripters essentially blur the line between an IT pro and a developer. Finally, they care enough to share with the community.
If you're interested in any topic don't get lazy even though it's tempting to do so. Chances are the more you learn the more excited you'll get because you'll stumble across things you never even realized were there. What's the old saying? "The more you know the more you know you don't know". That's one of my favorite quotes.
Never stop learning. Always be reaching for that next rung in the ladder because if you want to be called an expert in a topic you'll never go past intermediate if you continue to copy/paste others' code without understanding it, only doing what's necessary at the time and refusing to embrace change as your topic or industry changes.
Join the Jar Tippers on Patreon
It takes a lot of time to write detailed blog posts like this one. In a single-income family, this blog is one way I depend on to keep the lights on. I'd be eternally grateful if you could become a Patreon patron today!Become a Patron!