Si eres joven te recomendaría que comiences a estudiar lenguajes de programación como J, Common Lisp y Oz. Los primeros dos lenguajes son útiles para re-aprender matemáticas y el último tiene gran valor didáctico por incorporar la mayoría de paradigmas de programación. A la par, quizá podrías juguetear con GNU MDK para aprender los fundamentos de la programación de bajo nivel .
Ya desde este punto podrías orientar tu formación juanker al tema que te interese más y desde un enfoque más constructivo, ya sabes, crear tu propio kernel de juguete en lugar de ir y cargar en contra del kernel de Linux para sacarle una vulnerabilidad, crear y vulnerar tu propio servidor HTTP espartano; crear tu propio sistema criptográfico y luego romperlo, etc. Cuando te sientas listo ve a investigar los fallos de seguridad en el software de terceros, hasta puedes volverte un cazador de bugs a sueldo.
Espero verte en algunos años dando una magistral ponencia en la TrianguCon.