For context, I've been teaching myself programming for about 10 years, and I'm currently a professional programmer.
The most important thing in programming is that you find something that you enjoy. There's enough variety in terms of languages and problems out there that you're bound to find something that works for you. Once you find something that's fun (and therefore easier) for you, it won't be too hard to bootstrap into more complicated languages and problems.
As far as problems go, start with something simple, and work your way up. An excellent way to ...
I'd recommend against installing Unix/Linux unless you're already familiar with it. Learning programming and learning Unix are both non-trivial tasks. While I agree that Unix is generally a better environment for programming, I think it's better to focus on one thing at a time. Optimizing your programming environment is secondary to using an environment you're comfortable with.