It really depends what level you are up to. All of those things that you want to do require a different skill set:
Becoming capable of creating my own apps for Android: Have to learn Java
Becoming capable of understanding programming as a concept accross all platforms: Not sure how you learn this, or what specifically you want to learn with this. Perhaps learn about compilers and how they can compile the same source code on different machines
Getting better at networking related stuff: I assume you mean programming related? This is one of the hardest topics in programming in combination with process management and threading. If you just mean basic IT stuff like make sure something is working -> It's a lot simpler. I'd recommend learning about DNS, adapters, common problems with IP.
Building some real Linux Foo, especially with the command line -> Have to learn shell. Learn by doing (learn to install archlinux, create a few users...). Linuxacademy also has a really good course -> Follow the COMPTIA Linux+ course.
My guidance would be to start on python. Small Basic isn't really used anymore to my knowledge. Python is great for quick scripts and usually what they use for R&D. Learn the basic concepts and structure of programming as this is similar across all languages. This means knowing your control structures (if, loops...), data types (ints, floats, lists, arrays...), and operators (=, <...) like the back of your head. Code academy has a good course.
I actually prefer learning C++ (which is a fairly low level language -> learn what this means) first to learn the basic concepts of programming then going up to python. If you do make sure you know everything up to classes in the back of your head from http://www.cplusplus.com/doc/tutorial/
I would then learn java last.
Networking will come with time program-wise when you need it.
Networking (IT) and shell scripting can be learnt in any order, preferably after learning the basics.