Depende de lo que quieras aprender. Para programar sólo necesitas saber lo que es:
variable
operaciones con variables (matemáticas y lógicas)
if
for
while
definición de funciones
clases y objetos (Opcional pero abre muchas puertas)
Uso de librerías externas
(Y si usas python comprensiones, indices de iterables y decoradores)
Con eso puedes hacer el programa que te salga de la nariz, lo puedes aprender sobre la marcha haciendo un proyecto que te guste (Un buscaminas, un hundir la flota o alguna chorrada del estilo). Si quieres echar un ojo a cómo es python (Que es fácil de leer y escribir y está guay para aprender) aquí hay unas diapositivas de una charla que di en la araba. Está muy resumido pero a ojo se puede ver cómo es. Cuando estés cómodo con algún lenguaje y sepas hacer cosas te recomiendo aprender C++, se usa bastante y viene bien conocerlo.
Si quieres hacer webs Puedes tirar por cosas como django o aprender HTML, CSS, PHP, JS y bases de datos y hacerlas a las bravas. Lo primero es fácil y resultón, lo segundo te abre alguna puerta más pero necesita de más práctica y esfuerzo.Lo ideal obviamente es conocer las dos maneras, si tuviera que elegir me metería con la segunda opción y luego usaría la primera para hacer cosas más prácticas.
Sobre libros para aprender... No sé, yo te recomendaría proponerte un proyecto y aprender sobre la marcha. Los libros están bien como referencia pero normalmente aprendes mejor tirando de documentación, si vas capítulo por capítulo leyendo no vas a acordarte de nada cuando acabes. Es mas, si hacer un proyecto mediano (5k líneas) puedes dedicarte a reescribir código cuando acabes, y de ahí puedes aprender otro porrón y medio.