I want to ask your opinion on something, a PowerShell question in fact, but I need to set the stage before I do.
Suppose you want to learn something, a skill perhaps that is important to you. Maybe it helps with your daily job or some hobby you love – could even change your career. From past experience, you know that to learn a new skill, it will require additional knowledge, practice, recognition of failure, and a desire to correct failure when needed to achieve success. You have learned many things this way from troubleshooting TCP/IP to riding a bike. Failure happens, but you get up, brush yourself off, and try-try again. This is how we learn to apply the knowledge gained, learn from mistakes and continue the process.
Instead of a bicycle example, let me switch to a PowerShell one. Supposed I teach you how to get a list of processes running on your computer using the Get-Process cmdlet. Add to this some additional knowledge about how to sort using Sort-Object and select specific information using Select-Object. I not only teach you these three cmdlets, I also teach you how to use the help system so that you can dive deeper and learn about other cmdlets. A strong knowledge of the help system means you never have to “memorize” all these cmdlets.
After gaining this knowledge, you are confronted with a real-life problem to solve: “You need to display the top 10 processes on your computer, sorted by CPU. You need to store this information as a CSV file for later review.”
Could you figure it out? If I taught you how to use the help system and about the cmdlets necessary, I bet you could. This is an example of analysis, synthesis, and evaluation in Bloom’s Taxonomy. You put the pieces together to get a result, compare that result with what you expected and if it doesn’t match expectation, make corrections until it does. In a nutshell, “figure it out”.
For many of us, this is how we learn. Actually, many of us LOVE to learn this way.
But what if you get stuck and you can’t figure it out? Should I give you the answer or guidance (not the answer) to help you move forward in solving it yourself?
For me, the answer doesn’t help me understand why I couldn’t figure it out – what piece of information am I missing, where did my thinking go wrong. So, what I usually seek is additional guidance, not the answer. In the case of PowerShell, I turn to amazing community (friends, twitter and at PowerShell.Org) to get guidance on the knowledge I’m missing. I use that information to experiment and learn to solve my problem. (In fact, sometimes no one knows the answer – have you been working with v5? – and I might be the first to try to figure it out)
The reason I’m asking you about your opinion on this is because recently I’ve been getting questions about creating a lab answer guide for the PowerShell TFM book published by SAPIEN Technology’s. I normally don’t create answer guides for PowerShell training for the simple reason that you can tell immediately if you get the correct results or not. To fix the results, you use the help system and experimentation to “figure it out” while learning the troubleshooting/thinking process of PowerShell. It’s part of the deal being a DEV/OPS person anyway – it’s what we do everyday. In fact, by not having “MY” answer, you might discover a better one!
But the real question isn’t about me; it’s about you and how you learn. Was I wrong not to include a lab answer guide? I want your opinion, as you are the most important reason I took the time to write the book. Your opinion matters most. Take a few minutes and let me know what you think.