You don't necessarily need to get a head start. There'll be enough time to learn that stuff at college. The stuff that gets CS students flustered is usually math
As for programming language, any will do. The concepts are mostly the same. You don't need to pick the one you'll use at university.
Java/C# is always a safe bet. They are relatively easy to get into and are used a lot at as well as outside of university.
Starting with C++ wouldn't be a bad idea, either. It's not the easiest language and probably won't be used in Programming 101, but it gives you a different perspective when you start Java at university. I think knowing how pointers work in C/C++ really helps to understand Java.
Or you could start with a functional language like Haskell. I think it's a great language for starting programming and you'd quickly get familiar with recursion.
You could take some classes on coursera:
https://www.coursera.org/courses?languages=en&categories=cs-programming,cs-theory
This one starts in February:
https://www.coursera.org/course/pythonlearn and this one in March:
https://www.coursera.org/course/codeyourself
This one would also be an option:
https://www.coursera.org/course/gameprogramming
Programming at university rarely demands for a powerful device (especially not at the beginning). Virtually any desktop will do. You could also get by plugging an external keyboard/mouse/monitor into your laptop. Doing stuff on the laptop has the advantage that you always have it with you on campus/in class. You could try to hold off from purchasing a desktop and wait till the need actually arises. Then you'd already be settled in and you'd have a way better idea of what you need.
If you do buy a desktop, consider that you probably won't need Windows (which you get for free at most universities; or you could just use Linux). Don't know what your budget is, but if you don't just want the cheapest one possible (which would still be fast enough), you should look into this one:
http://amzn.com/B00ILH15DA or the Dell Poweredge T20. The two are relatively cheap, but really nice servers. The Xeon 1225 is pretty great. They don't come with an OS (free from university). They aren't big gaming rigs (can't put in really fast GPUs since that would need a bigger power supply) -- it's not what those servers are meant for -- but for programming and light gaming they're perfectly fine.
I bought the Dell not too long ago for myself. I put in a cheap SSD and used a Windows 8.1 license I already had. I think it's a great machine for a really great price.