Ask HN: How to effectively learn PowerShell?
Effectively, forget about desktop and cmd and only live in powershell. That is what I do - Posh is my operating system, it autostarts with Windows. In a several months you will be effective user, but to master it will still take years.<p>In this regard, few tips:<p>- Install apps via Chocolatey. If app is not there create a package and maintain it. AU framework makes it one time development event. See this report: 
<a href="https:&#x2F;&#x2F;gist.github.com&#x2F;majkinetor&#x2F;a700c70b8847b29ebb1c918d47ee4eb1" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;majkinetor&#x2F;a700c70b8847b29ebb1c918d4...</a><p>- Your profile is very important. I use profile.d which can be reused easily on all your machines: 
<a href="https:&#x2F;&#x2F;github.com&#x2F;majkinetor&#x2F;powershell_profile.d" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;majkinetor&#x2F;powershell_profile.d</a><p>- Use Powershell Gallery and modules in general. Make module or reusable component for everything. See my work here:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;majkinetor&#x2F;posh" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;majkinetor&#x2F;posh</a><p>- Make sure you use mandatory cli tools:<p>cinst conemu less peco sysinternals everything copyq<p>- Do not use junk GUI editors such as ISE. Visual Studio Code is way better if you have to. Sometimes is OK when debugging. I would suggest vim because speed is of great importance in shell world.<p>- Follow reddit community and ask questions there rather then on SO which is full of achievement biatches. Redditors will help you for free for the joy of sharing the knowledge.<p>- Use Github to store all your stuff. Also, in coorporation you can use NAS share to let anybody import stuff from there.<p>- DO NOT LISTEN naysayers about aliases - use default alises all the time. They are cross-platform and well known and I can go into neurolinguistics of why is it better and easier for the brain but I don&#x27;t want to do it here. People will certainly whine now but ignore them. DEFAULT (READ ONLY) ALIASES ARE THE BEST. Particularly, if you see somebody does foreach-object or where-object just kill him ASAP.<p>- Do ALL windows config from Posh. If you don&#x27;t know ask around. If you are devops dude, you can thank me later, especially when you learn DSC and apply all that knowledge there or with boxstarter.<p>- If you happen to be locked in older posh use PSReadLine. Keep in mind that $host.Version -lt &#x27;3.0&#x27; is full of surprises and use latest version if possible.<p>- Do not compromise with others in coorporation. Ask for script for everything. If sysadmin tells you that server is low on disk you ask for proof in the form of the command you can execute. Ask for invoke-sql when using databases. If you give admin a job to create a IIS site for your web app ask for a script. If you are a project manager, do not close tickets without a script.<p>- If you monitor vendor excursions in your company infrastructure, ask for transcripipt of ALL operations they do. You will thank me later. Do not sign their work without it.<p>I can recommend &quot;Windows Powershell In Depth&quot;
<a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;powershell-in-depth-second-edition" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;powershell-in-depth-second-edi...</a><p>And if you don&#x27;t enjoy PS almost every single moment you are doing something wrong.<p>PS: I do not work for Microsoft :) I just think bash and friends are  ridiculous in 2017 and honestly a little embarrassing. Do not do that - install Powershell on Linux and Mac if you have to and keep your sanity.<p>PS2: Somebody will certainly say that ruby&#x2F;python&#x2F;whatever is great on linux side. Ignore them. Those are not shell languages (while great otherwise and valuable in your skillset - cinst ruby python etc. is among my mandatory stuff but lets keep perspective here).<p>Good luck.