This paper examines various programmable systems on a chip (SOCs) and their underlying architectures and technologies. Specifically oriented toward hardware engineers and system engineers, the paper discusses tradeoffs between the different programmable SOC devices based on their architectures and technologies. An overview is given of the different programmable SOCs on the market and the different vendors that offer them.