Most of the people here on HN have extensive coding experience, and are deeply proficient in creating working code that actually does the job. I do know that reaching that level of proficiency requires years of dedicated keyboard bashing, but as a new entrant something has been bothering me.
I've been trying to make a web app in PHP, and I bought one of those popular books on it (http://www.amazon.com/Beginning-PHP5-Programmer-Dan-Squier/dp/0764557831/ref=pd_bxgy_b_img_a). It was quite okay, but it didn't give me what I was looking for. I want to actually understand what I am doing from the grounds up. For e.g.I wish to understand how TCP/IP works. So, that I know what is happening to my HTTP request after I send it and how I can take advantage of its capabilities. I also wish to understand other things like understanding how an RDBMS is implemented. So, that I can make better code to access data from it more efficiently are also a part of this.
In general I want to know why I am doing what I am doing. Some of this knowledge requires years of actual experimentation to gain, and I am ready to do that, but what I am looking for is a good platform from which I can start.
Can you suggest any ways/resources to do this? (This also applies to programming in general)
P.S. - I put this up on HN because there is a lot of noise out there, and it is hard for me as a n00b to differentiate between seemingly good advice/resources and actual good advice/resources.
http://learnpythonthehardway.org/
It's a book that teaches programming assuming no programming knowledge, and is organized into exercises you do one per week or faster if you want. It's basically a book you'd read before you try any of the others, teaching you the stuff that other programmers forgot they learned.