I've only ever used an UNO and was consider getting a mega or due to play around with. Are these two different kinds of programming language? Will the codes I wrote for my uno work the same on these? Or can someone point me into the direction of explanations on the differences. (I know the due is 3.3v but I'm more concerned with the programming.)

Going to the Mega2560 will be easier, but may require changes if you have used libraries that use low-level chip features. Arduino code you write is very compatible from the UNO up the technology line, but you may need to make minimal changed.

Today I have both - the Mega2560 R3 and the Due (R3) and my conclusion is:

Mega is easier on the use because:+ uses 5V TTL, it is an advantage for a large number of "classic" 5V modules and shields+ programs for Uno is easily adjusted for Mega+ Mega clones (e.g. Funduino, Hiduino, Robotale, and so forth) are really cheap ($15)+ with the exception of SPI and INTs has an identical layout of functions on the pins such as UNO- 3.3V modules can not be connected directly, logic level converter must be used

Due belongs to the future, but:- not 5V TTL, it is a disadvantage for a large number of "classic" 5V shields- programs for Uno is difficult to rewrite for Due, small amount of examples and finished projects- Due clones are not so cheap- differences in the layout functions on the pins are greater+ uses 3.3V TTL, modern modules can be connected directly (for example, most TFT displays)+ has "a lot" of memory RAM, Flash, EPROM ...+ has USB host+ Arduino IDE can be used for programming without the need to learn something else