If you only get one programmer / debugger, get this.
A great programmer that can be used in various ways (protocols and wiring). Works both in Windows and Linux, and I've heard Mac too.
While you can most likely collect a bunch of cheaper programmers that do each type of programming - ICSP, UPDI, etc, this one does the most needed types. Works with PIC microcontrollers and AVR. I personally have successfully used it with ATmega4809 on a breadboard - both programming and debugging.
I introduced myself in pic programming.
Notice
Don't keep open Mplab X and Mplab IPE at the same time or pickit4 won't connect to IPE.
After this you could complete tutorial without problems.