Oh, one last comment about UEFI boot to close this post. As was the case with the previous Mint 16 release, the UEFI boot directory will be named 'ubuntu', so if you want to install Mint 17 and Ubuntu both on the same UEFI boot system, you will have to be careful about that.
The most obvious solution, renaming the boot directory after the first of them is installed, doesn't work (it won't boot that one any more). The solution I have found which does work is to create a second EFI Boot partition, but neither Ubuntu nor Mint will let you specify the UEFI boot partition to use on installation, so you have to copy the boot directory to the second EFI partition after installing. This is not a big deal, if you are "advanced" enough to be installing both distributions on one system, then you should also be able to handle this.
Probably the easiest way to start kernel programming is to write a module – a piece of code that can be dynamically loaded into the kernel and removed from it. There are limits to what modules can do – for example, they can’t add or remove fields to common data structures like process descriptors. But in all other ways they are full-fledged kernel-level code, and they can always be compiled into the kernel (thus removing all the restrictions) if needed. It is fully possible to develop and compile a module outside the Linux source tree (this is unsurprisingly called an out-of-tree build), which is very convenient if you just want to play a bit and do not wish to submit your changes for inclusion into the mainline kernel.
While Scratch may seem like a very simplistic programming language that’s just for kids, you’d be wrong to overlook it as an excellent first step into coding for all age levels. One aspect of learning to code is understanding the underlying logic that makes up all programs; comparing two systems, learning to work with loops and general decision-making within the code.