Como mis compañeros dicen, no puedes aprender todo de una sola leida.
Primero, aprende a programar en cualquier lenguaje, preferiblemente C++ y C que son lenguajes compilados. Y el lenguaje python que es interpretado que lo podrias usar para scripting.
Al aprender estos lenguajes no los orientes aun hacia el hacking, aprendelos de manera general, sus librerias, modulos y funciones, condicionales, variables, constantes, arrays, diccionarios.
Intenta al principio automatizar procesos simples como por ejemplo crear carpetas etc.
Cuando ya tengas una buena base puedes comenzar a aprender sobre redes,
aprender como funcionan las direcciones IP y saber diferenciarlas.
aprender sobre las direcciones MAC, interfaces de red, sniffing de red,
-Protocolos de red (TCP, UDP, ICMP, NTP,, ARP. ETC)
Tambien aprender sobre servidores, sus funcionamiento, estructura de carpetas, carpetas de configuracion, etc.
Aprender los servicios que suelen correr en estos servidores y como funcionan.
Algunos servicios serian (SSH, FTP, TELNET, APACHE, SAMBA, ETC)
En mi caso yo uso una distribucion Debian de linux, linux es un buen sistema para aprender todo esto.
Asi que si decides cambiarte despues a linux deberas aprender a usarlo.
Despues de todo esto deberas leer bastante documentacion, aprender a encontrar vulnerabilidades
de forma manual, por ejemplo en los servicios de un servidor muchas veces suelen haber exploits para versiones antiguas.
Aqui te dejo algunas referencias:
https://www.programarya.com/Cursos/C++https://www.programarya.com/Cursos/PythonLo demas lo dejo a tu investigacion, hay bastante informacion en interntet, solo hay que encontrarla.