today i want to share my experiences of the last months with you where i worked nearly every day hours over hours on my Powershell skills. I have read a lot of books, watched douzens webinars, written many blog and forum posts and also thousands of lines powershell code. But not every material or action was reasonable at some learning point.
So i worked out – somewhat like – a learning plan. I will list up the best material you should work on at a specific learning point. (as for my own personal opinion)
But keep in mind – this could vary for you. Persons are different as also their learning types. Some persons need to hear and see the things to capture the input better. Others learn best by reading and some need to interact as by writing.
But one thing is for sure – you will need a lot of practice and you will need to write scripts by yourself!
A good thing is to store your knowledge for future use by creating your own “knowledge base”. Here you store all nice solutions or code snippets, which you may need in the future. By writing them down and testing them you strengthen also your knowledge. Don´t forget to manage it nicely to find everything later on.
You will also need a “Script-Store” where you can store your complete scripts in the future. If you haven´t done that yet the time to do this is now.
Also a very important point:
Get to know what Powershell best practices are and respect them. When your scripts get larger or if you use scripts in an productive or business environment you don´t want to learn by yourself why best practices had been made to “Best Practices”.
First you need to get in touch with the Powershell basics and also may be the scripting basics if you don´t have a developing background. Herefore i can only recommend the godfather of powershell himself –
He has made some very nice online trainings which can be found on the Microsoft Virtual Academy.
When you watch the videos try to test the methods by your own. Pause the videos if you want to test something out:
Getting Started with PowerShell 3.0 Jump Start
Advanced Tools & Scripting with PowerShell 3.0 Jump Start
After having watched the videos you should try to work out some scripts by yourself. You need to know the basic Cmdlets and how to work with them. Use Get-Help as much as you can.
A good book to start with is this one:
This skill level assures, that you can write some easy script lines and small scripts by yourself, but you have to google/bing a lot to achieve your aims. This skill level is the hardest to proceed. Here you have to strengthen all your skills: You need to get to know the most used commandlets and how they work – and this in combination with some powershell techniques. You have to fill all your gaps in the powershell scripting basics and many more. But you should not extend your knowledge massively. Keep your eye on the basics – these must be known perfectly to have a good fundamental. Do not dive into some very rare powershell deep dives – better you concentrate on daily work tasks.
Very good resources for this step are the cookbooks of Dr. Tobias Weltner which can be found here:
Afterwards you could go deeper with the next book, which is also written by Don Joney and Jeffery D. Hicks. Personally i think that this book can also be skipped. But if you read a lot and don´t worry about the money take it in your journey:
Learn PowerShell Toolmaking in a Month of Lunches
Don Jones and Jeffery D. Hicks, 368 pages
At this point you should also join a forum where you can read the questions and should try to understand the solutions and the solution scripts. Herefore i can recommend the Windows Technet in English.
Windows Technet Forums – Powershell – English
Get also in touch with WMI. Be sure that you could answer the simple answers like – what is it and how can it be browsed and used.
This skill level assures that you are stable with the most important commandlets and you have just written some scripts but need the knowledge of rarely used techniques or deep diving procedures.
Go to a Forum and try to answer the posts. Look at the solutions and compare your solutions with other ones.
A perfect book at this time is the following:
Don Jones, Jeffery Hicks, Richard Siddaway, 744 pages
I personally loved this one – it is very comprehensive (though missing a lot of the basic stuff) and delivers very nice examples which could be used in your daily work. Also it shows some nice techniques in Powershell, which you won´t find in other books and is therefore worth reading, even if you think, that you have mastered Powershell.
At this point you should also take a big deep dive into Regex and how to use it with Powershell. If you are good in Regex you can easily parse everything. I would suggest to buy a book herefore.
Take also some visits to usergroups or conferences. Learn from the best.
And at last – keep an eye on active powershell blogs or even better – blog by yourself.
So – here are we now – the Pro level. Do you think you cannot improve your skills anymore? Then you are absolutely wrong – that´s for sure.
One very important point is to know how Powershell works under the hood. So you need to know the basic and also deeper knowledge of .Net.
I absolutely recommend to learn C# and later on XAML/WPF.
At this point you should start your own projects. Grab a nice topic which is rarely described or very new and dive into it – or create some nice tools which can be used by many preople. And – share them!
Pros learn best – from other pros. Spread your network – speak at conferences / usergroups / everything you like.
And – if you have the time and motivation you should also read more books. By this you harden your basic skills and may be you find some new tricks or nice techniques to extend your own knowledge.
And the most important suggestion – never stop learning.
Keep an eye on the street – we are driving in a fast car and the street changes every day.
“PowerShell in Action” by Bruce Payette
Windows PowerShell Cookbook” by Lee Holmes
I hope you enjoyed my recommendations. If you have any other material or you absolutely disagree with me in some point please let me know.