My programming "path" is too long already. I've started about 15 years ago (when I was a schoolboy) writing simple and abstract enough programs... Moving character through maze in ASCII, playing stupid solitaire game 1000 times and counting how often it is won, solving basic math and physics problems...
Later I dived into assembler and then C - which I used almost 10 years - while I was studying in university, while I was in army and later at first two jobs I had. Meanwhile I learned programming GUI and made myself guru of electronics %)
Surely I've tried many other languages (mostly unpopular, like LISP, Prolog or FORTH) during this time.
Then I started to learn java and basics of web-programming. Later I switched to java completely and practiced other widespread languages like Python or PHP. Currently I'm employed as enterprise java developer.
I've had interest in competitive programming also but without significant results.
To sum up my personal opinion is that for beginner it is most important to choose suitable enough language (many prefer python) and start practicing tons of small tasks and exercises. You see, this helps to move the knowledge of the language and the simple algorithms and data structures out of your head to tips of your fingers, so that head becomes free enough for learning libraries, GUIs, interfaces, patterns and all kinds of more complicated things.
I am now trying to create a collection of such small problems as a web-site with simple checker of results - though it is bit too young still: