I'm looking to learn to program, the right way. I don't want to pick up bad habits and I'm hoping there is some good guidance out there that will help.<p>Currently I know the following: HTML, CSS, and some Javascript and jQuery. That's all front end though and I want to start to learn how to get the back end going.<p>While I want to understand the big concepts, I ultimately learn by doing. I get to a problem, and figure out through trial and error, research, or even questions here... and once it's solved, I've learned something. So, if I could learn by building up my startup, that would be great. The only thing with that though, I know that certain (if not many) aspects of my startup are not new and I don't want to approach writing things from scratch when it's already been done well (certainly better than I could currently manage) already and available in some framework (i.e. Django). However, I don't want to rely on frameworks either to solve all my problems... so I would like to find a balance between building efficiently (using/learning a framework) and learning to code from scratch (i.e. Python).<p>Anyway, help here would be greatly appreciated. Also, guidance on other topics in regards to building a website (since I know there is more than just the code) would be great. Thanks!