Back to the choice of programming or network design:
First and foremost - as already mentioned - IT for most people is about passion for technology, you should consider which of the two options you enjoy the most - as this will be the one that you truly excel at... just because you can do something doesn't mean you will - you have to keep yourself interested otherwise you will fail to reach your potential.
Secondly, one thing to consider is that 'playing' at network design in your spare time (in other words learning and practicing) can be comparatively expensive - have a look at the cost of the latest Cisco router models, the price of SAN's, etc etc - to "learn networking by practical application" it will cost you a fair bit if you don't have access to some spare kit at work. However programming is essentially free (for most things) - free Databases, free IDE's, free compilers, free tutorials, etc etc. Meaning you can start practicing with real examples immediately and build things that are useful to you - maybe a small contacts database, a website, a media converter, etc etc - all it will cost is your time.
Having said that you can get to grips with the basics and the concepts if you buy a couple of PC's a cheap router and hub etc, use a combination of windows and Linux/FreeBSD/OpenBSD, and try out some of the free firewalling and proxy software. You can learn plenty of the basics from this, but you will be somewhat limited in regards to some of the entperprise networking solutions due to your budget.
Either way, good luck, and remember to choose with your heart, not with your head.. really... you'll understand what I mean if you make the wrong choice and *hate* your job (everything is fun when you're first learning - it's the rest of the time you need to be thinking of)
Best of luck either way
A smile is worth a thousand kind words. So smile, it's easy! 