At an internship I did, I had to change the hard drive driver in Minix so that it serves requests using the elevator algorithm instead of first-come-first-served. I was supposed to do it in Minix 2, but I wanted to do it in Minix 3 because I never like using old technologies.
In the 2 months I was working on it, the most frustrating thing was that Minix 3 took about 20 minutes to compile in VMWare on a laptop with an I5 processor, 4GB of RAM running Windows 7. Finally, after 2 months, I gave up on Minix 3 and switched to Minix 2, which compiled in about 20 s.
Now I'm not saying there couldn't have been something very wrong about how I was compiling the system, but I was trying really hard to speed it up with no success.
Let me just say that at the time I had just received my Master's degree in computer science and I had 5 years of intensive experience with programming in C (just so that you don't think I'm a self-taught programmer that just decided to jump in to programming by redesigning an operating system :D )
EDIT: In the end, I suggest you to try compiling Minix 3 to see how it goes for you. If you have more luck, definitely go with this one because it has more modern OS concepts, on the other hand, if you are a complete beginner, you'll probably learn tons from Minix 2. I did.
can program [...] medium sized programs in them
-> I would contest this opinion if you have only formally studied them and have only a very basic understanding of data structures. For me, a medium sized programs is in the 100kLoC regions, which means you need a good grasp of how to organise the code, how to chose good names for your entities, namespaces, good class design, and intuition based on years of experience. It boils down to: If you have not written a good and clean medium sized program yet, you can't know whether you are already able to. – Maiga