hmm... grab a library card, read books on the topics you just mentioned in your post, ask questions here if you don't get something, and practice what you read (or it wont stick)...


For exploiting, you have to be able to not only read and understand code, but you have to be able to think about a misdirection that most normal people would overlook. I certainly do not have this skill or anything close to it. What I find helpful is looking over older exploits/source code and understanding how the code was exploited. This will help you understand what the intellegent person who discovered the exploit was thinking. If you look over old exploits and understand how they work, this might help you look at source code and spot possible exploitable pieces.

For programming, just grab a book on whatever language you want, read it, and practice the language. Develop small programs, some of which could be meaningless, but it just helps to actually practice what you read. Then, take a look at larger programs. Understand how they work and try some advanced programming yourself.

Network/TCP, again grab a book, read up on it, and practice it. If you a specifically trying to become a pentester, setup a dummy network in your house and try to break in. Setup the dummy network in different configurations and with different software. Have the computers you are trying to crack be running HIDS/NIDS/Firewalls/Whatever you want to detect port scans. This will help you understand not only how these kindsa network defenses operate, but also whether or not your attack was discovered. This will help you in finding ways to avoid such defenses and to further your pentesting skills.

Just start practicing and learning. The dummy network is a good idea as it will give you real life experience that you cant get from a book. GL, I'm done