Crea un cronograma de estudio para aprender a programar como un programador Senior, donde pueda estudiar 2 horas todos los días salvo sábados y domingos, partiendo desde cero y donde aprenda tres lenguajes de programación distintos. Para cada semana del cronograma provéame de una bibliografía de consulta y muchos ejercicios para practicar lo aprendido.
Semana 1:

Lenguaje de programación: Python
Bibliografía: Python Crash Course de Eric Matthes
Ejercicios: Practica los conceptos básicos de Python, como variables, operadores, estructuras de control de flujo y funciones. Ejercicios recomendados: Codecademy's Python course, HackerRank Python challenges.
Semana 2:

Lenguaje de programación: Python
Bibliografía: Fluent Python de Luciano Ramalho
Ejercicios: Practica conceptos avanzados de Python, como programación orientada a objetos, decoradores y generadores. Ejercicios recomendados: Project Euler, Codewars Python challenges.
Semana 3:

Lenguaje de programación: JavaScript
Bibliografía: JavaScript: The Definitive Guide de David Flanagan
Ejercicios: Practica los conceptos básicos de JavaScript, como variables, operadores, estructuras de control de flujo y funciones. Ejercicios recomendados: Codecademy's JavaScript course, HackerRank JavaScript challenges.
Semana 4:

Lenguaje de programación: JavaScript
Bibliografía: Eloquent JavaScript de Marijn Haverbeke
Ejercicios: Practica conceptos avanzados de JavaScript, como programación orientada a objetos, asincronía y manipulación del DOM. Ejercicios recomendados: FreeCodeCamp JavaScript challenges, LeetCode JavaScript challenges.
Semana 5:

Lenguaje de programación: Java
Bibliografía: Head First Java de Kathy Sierra y Bert Bates
Ejercicios: Practica los conceptos básicos de Java, como variables, operadores, estructuras de control de flujo y clases. Ejercicios recomendados: Codecademy's Java course, HackerRank Java challenges.
Semana 6:

Lenguaje de programación: Java
Bibliografía: Effective Java de Joshua Bloch
Ejercicios: Practica conceptos avanzados de Java, como programación orientada a objetos, excepciones y colecciones. Ejercicios recomendados: Project Euler Java problems, HackerRank Java challenges.
Semana 7:

Repaso de los tres lenguajes aprendidos.
Bibliografía: Cracking the Coding Interview de Gayle Laakmann McDowell
Ejercicios: Practica resolviendo problemas de algoritmos y estructuras de datos en los tres lenguajes aprendidos. Ejercicios recomendados: LeetCode, HackerRank, CodeSignal.