Learn to code first - you will either love it and know you wish to pursue it, or not. Once you have completed a few decent projects go for a junior job, make sure they see your enthusiasm and willingness to learn and someone will take you on. Once you're on the ladder your talent and effort will do the rest.
Programming is a very broad discipline - make sure you choose an area that you are interested in; it's no good learning kernel programming if you're really interested in the web.. for example..
Edit: There are two things at stake here: 1) working out whether you enjoy progamming enough to pursue it as a career and 2) gaining some experience. When someone takes you on as a junior I doubt they will be that interested in seeing a portfolio (as a design firm might for example). Employers looking for a junior won't expect you to have built enterprise systems, rather they will be looking for more general traits - intelligence and aptitude, willingness to learn, enthusiasm for what you do, whether you will fit in their organisation. (Note: employers are likely to test aptitude at interview, but this would be a general logic and problem solving test rather than a test of a specific technology).
Completing a few projects in your own time is a great signal to an employer that you're serious about programming - rather than demonstrating meaningful experience. Meaningful experience is hard won; it takes years of solving real-world problems, supporting production systems, dealing with other people's code and so on, to build experience that employers are interested in, and this applies increasingly as you work your way up, but not really when starting out.
In terms of education - I probably wouldn't go for an Msc (at least initially) for the following reasons:
- Not having a formal computer science qualification is generally no hinderance to progressing your career - personal qualities matter more.
- Think of progamming as a kind of practical engineering; there are many great car mechanics for example who understand every nut and bolt of an engine and learnt their trade taking engines apart. On the otherhand I wouldn't trust my car to a mechanic who had only ever read a haynes manual. With programming you learn by doing.
- The rate of change in technology is fast; staying in touch and keeping your skills up to date is an ongoing investment, you can't expect to attend a course for one or two years and then relax with the knowledge learnt, as perhaps you can with more traditional academic subjects.
- There are lots of high quality learning resources freely available on the web - with your academic background, you will have no trouble taking advantage - you're already on stackoverflow so you're halfway there ;)
To get started I would suggest getting hold of the tools (Visual Studio for if you want to go down the .NET route), learning the nuts and bolts of a language, learn a bit of SQL (you will need it) and once you're comfortable you understand what's going on, create a project in an area that interests you. There are a few questions on StackOverflow about getting started.