Automating the world one-liner at a time…
Back in the days when our hair was on fire with security issues, we brought in a number of industry experts to educate us on developing secure software. This resulted in the Security Development Lifecycle which all our products now use. One of the best talks was a from a guy from the NSA who had a talk that was something along the lines of, “The zen of secure software”. In this talk he argued against the all-or-nothing mindset in favor of a model of constantly expanding the envelope. Any given moment, you evaluate what you need to do (in this case – to address security issues), you do it and then … you do a bit more. Then do it again. And again. And again. And with constant vigilance and time, you would achieve excellence.
And so it is with using PowerShell. I’ve recently had a number of engagements with people just getting started with PowerShell and getting frustrated with the syntax or some of the semantics and then they look at these thick PowerShell books and feel a bit overwhelmed.
Don’t be overwhelmed.
PowerShell is meant to be an fun environment to experiment with what is possible. That means you’ll try some things and they’ll fail – don’t let that freak you out (it is one of the reasons we added –WHATIF to everything!). I’ve been trying to learn to do yoga for a while now. In yoga there are lots of positions that require balance and I’m not particularly good at that. I used to get super frustrated with these poses until one day my teacher quoted someone saying, “falling is learning – just focus on having fun”. That phrase transformed my experience and while I wish I didn’t fall, now when I do, I smile, laugh and get up and try it again.
All you need to do is to learn what you need to do to accomplish the task at hand … and a bit more. Then do it again. And again. And again. Have fun with it and push the envelope.
Now I’m late for yoga – gotta run. Experiment! Enjoy! Engage!
Jeffrey Snover [MSFT] Distinguished Engineer Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
Since I think I am one of those people you mention in the second paragraph, let me say I have been plowing through Payette's book per your suggestion and am getting Powershell wedged into my head a bit better. Still a few "???" moments, but I am determined to learn it because of its, well, "Power."
I was just reading that this weekend and thinking the same thing about Powershell.
There are so many good parts of PowerShell though, so maybe we need PowerShell: The Essentials.
Which leads me to MVP - Keith Hill's E-Book Effective PowerShell, which could meet some of that criteria.
Today I am teaching PowerShell to a class in Stockholm. Many of them are 'falling'. But they are having fun and learning too. What is interesting is that (unlike yoga!) they are not falling over the same thing. They fall once, figure it out and move on. Ok they then find something else to fall over, but they are making progress. Today has been a truly great job - your post comes at a very welcome time!!
> getting frustrated with the syntax or some of the semantics
What exactly makes people frustrated and where other people can find this invaluable info?
Compare: official Perl documentation includes the “perltrap” topic:
I like the idea of promulgated PowerShell best practices. But even more I would like PowerShell traps and known issues to be promulgated. The right place is MSDN, by the way, not blogs.
Thanks for the ebook pointer - downloaded.
Per the "Good Parts" book, I think the most important thing in it is where he actually calls out the bad parts and labels those as "avoid always" and "you have to use these, but beware." That's what I think would be good for PS, too.
Keith's book is pretty good. Here's another one that's good as well.
It’s not how many times you fall down, it’s how many times you stand back up. But next time you’re about to stand back up, you might want to consider staying low and crawling over to a place where whatever keeps knocking you down can’t get to you. -Michael Simmons
I have just recently discovered powershell for real (v2.0 and the editor with debugging) and I would like to say Thank you, Thank you, Thank you! It is so cool, I can't get over it, having fun and exited like a child :D
Coming from bash world, I find powershell even easier to use with all its support for .Net assemblies - it is just what I've been wishing for.
Big thanks to the team - good job. Actually, great job.