I am trying to learn more about microcontrollers and was wondering if anyone can recommend a good modern PIC programmer. Is EPIC the best bet or is there something else out there that would be a better investment?
I am still using Arduino, I am just trying to expand my knowledge.
It depends on how much you want to invest in such a programmer. Actually, on microchips online shopping website (microchipdirect), they also sell third party device programmers that supports PIC devices. If you are planning to have something really reliable, i would strongly recommend SuperPro 5000 from xeltek.
Usually the programmers which only supports parallel or serial ports are very old programmers. In other words, they program slow, and they are not reliable. If the failure rate is not important, and if you don't care about slow programming; as long as it supports your PIC device, you should stick with them. But if you are planning to switch to an engineering environment, and if you are planning to create a volume programming platform, you should switch to one of those superpro programmers that works via USB. The reason i recommend superpro, they are the only third party programmers that supports pretty much all of the PIC devices for microchip.
I still have and use an EPIC but I still have a parallel port handy. There is nothing wrong with it. Microchip has since introduced a programmer PICKIT2 that is half the price of the EPIC. It makes no sense to buy the EPIC if you are starting now.
So should I get the DV164120 starter kit? Which one do I need? I want to be able to program a 40 pin PIC's, it mentions support for 20 pin, does that mean 20 pins on each side or 10 on each side? Also the starter kit mentions programming in Basic and the other two mention programming in C. I am new to programming altogether, would you recommend learning basic or c?
The proprietor of that product and site, Bill, hangs around this site, Search | Electronics Forum (Circuits, Projects and Microcontrollers) , is very active and many members rave about his products, esp his Junebug (pickit2 clone +) product. I'm sure he or other members there would answer any questions you have about that product. And yes it is pickit2 clone along with many additional features and functions.
I have also worked with the PICKIT and PICSTART both are pretty neat. If you can I would go with the Microchip products since they should be the most reliable and able to program a large range of devices. The PICSTART is more expensive AFAIK.
You can also try the Incircuit Debugger (ICD) which can be used as an in circuit programmer. This might work out more cost effective for you.
Or you could try to build one of the open source ones: