Network Security, Penetration Testing, and Programming