personally, I would prefer to start in the reverse order to what most uni courses do now.

Start with C/C++ ... get the basics down solid in an extremely confusing language using lots of obscure pointers and meaningless varible names/function names

Then, when everyone has dropped outta the course bar the two or three coffee addicts who managed to make it thru, put them on easy sailing with Java.

I hated getting everything right in java, which took a little bit of effort and going 'wheewwwww'... only to find people now want me to write wrapper functions for malloc or something else nasty.... oh sure it'll sound simple and be simple but its daunting atm.

ta for the resources - i'm sitting in my other C course atm avoiding work - 36 hours no sleep + flu & no food doesn't make great coding.