I thought some of you could relate to what Norvig (director of research at Google) is saying here: http://norvig.com/21-days.html
Researchers have shown it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, telegraph operation, painting, piano playing, swimming, tennis, and research in neuropsychology and topology. The key is deliberative practice
Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in your ten years/10,000 hours.
Program. The best kind of learning is learning by doing.
Talk with other programmers; read other programs. This is more important than any book or training course.
If you want, put in four years at a college (or more at a graduate school).
Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others.
Work on projects after other programmers. Understand a program written by someone else.