There are many approaches to learn how to program. Some opt for what's currently being used in the market. I prefer to suggest an approach that'll teach you how to create programs that are structured, malleable and understandable. For that, start with SICP (get a used version to save some bucks). Obviously you won't get a job programming in Scheme or Lisp, but that's not the intention behind my recommendation. The idea is to learn the methodical thinking process that goes about breaking problems down and creating composable and maintainable solutions for them.
Once you work the bulk of the book, get an introductory book on either Python or Ruby. Work the main concepts (procedures, control structures.) At the same time, search for Bohm and Jacobini's "Structured Program Theory" and Jackson Structured Programming.
Notice that I've made no mention of object-orientation. The fact is that OO is excellent for analysis and implementation, but difficult for the design phase. Procedural, modular and structured programming are more tractable, and to be honest, it is extremely hard to learn and properly utilize object orientation without fully understanding structured, procedural and modular programming concepts.
Once you get that done, take a dive into C (use the good old Kerninghan and Ritchie's C Programming Language book.)
Once you get that done, then jump into Java or C# to your heart's content. Then, read this paper:
http://sdg.csail.mit.edu/pubs/2009/hoare-jsp-3-29-09.pdf
As a real-world Java developer, I would find it unconscionable to suggest anyone who is serious about learning how to program to start with Java or C#. They are a great tool for work, but not a great language for teaching (not unless the person already has substantial experience or exposure to procedural and structured programming.)
Even if it is done for leisure, programming is a lot more than coding with a marketable language. You want to develop lessons and habits that will help you program cleanly and efficiently in any language. I strongly suggest you follow the outline I presented here. Good luck.