I am interested in playing with microcontrollers, so I got a copy of AVR Programming, bought a USBtinyISP from Amazon, and ordered some stuff from Mouser. Then I followed along until it was time to make an LED blink, and then:

% avrdude -p m328p -c usbtiny
avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)

that was strange, because:

% system_profiler SPUSBDataType | grep -A8 USBtiny
        USBtiny:

          Product ID: 0x0c9f
          Vendor ID: 0x1781
          Version: 1.04
          Speed: Up to 1.5 Mb/sec
          Location ID: 0x14200000 / 18
          Current Available (mA): 500
          Extra Operating Current (mA): 0

It worked fine on my Linux machine, though. For funsies, I ordered a two-pack of USBasp (more on that here) and saw the same behavior. The problem turned out to be that my OSX laptop only has USB3, where the front-panel USB connections on my Linux server are USB2. Putting a USB2 hub between the programmer and the USB3 ports would work, too, but it’s 2019 so I’m not sitting on a pile of old hubs.

So, if you only have USB3 connections (which is the case at least on my late 2013 Macbook Pro), you can’t directly use either a USBtiny or USBasp. You’ll need to use USB2, either directly or by forcing a downgrade with a hub.