Si alguna vez has escuchado la palabra programación y has pensado que eso suena muy difícil, que es para genios de la matemática o que yo no podría aprender eso usando un lector de pantalla, déjanos decirte algo mirándote a los ojos: este manual está hecho especialmente para ti.
La programación no es un club exclusivo para expertos en computadoras. Programar es, simplemente, aprender a darle órdenes en orden a una máquina para que haga lo que tú quieras. Si sabes enviar un correo, escribir un mensaje o navegar por internet con tu lector de pantalla, ya tienes todo lo necesario para empezar con lo más básico de este maravilloso mundo.
Hoy, la Comunidad TifloTec se enorgullece en presentar la Guía de Python para Novicios Absolutos. Un curso en texto plano, completamente gratuito, dividido en un capítulo por semana durante 15 semanas y diseñado paso a paso para personas ciegas o con baja visión que empiezan desde el cero más absoluto.
¿Por qué aprender Python? Un lenguaje con poder infinito.
Python es, actualmente, uno de los lenguajes de programación más utilizados y populares del planeta. Lo hermoso de Python es que es como una escalera: puedes empezar con cosas muy sencillas y, a medida que avanzas, puedes crear proyectos asombrosos y avanzados.
Por ejemplo, con Python se pueden hacer cosas como programar herramientas de accesibilidad y complementos para tus propios lectores de pantalla, crear asistentes de voz personalizados que te leen el clima o tus notas, desarrollar sistemas automáticos para organizar miles de archivos o libros en tu computadora en un segundo, diseñar las aplicaciones web que usas a diario e incluso dar vida a sistemas de Inteligencia Artificial como los que responden tus preguntas hoy en día. Y todo esto empieza escribiendo líneas de texto muy simples.
Un lenguaje limpio y amigable para tus oídos.
Muchos lenguajes de programación abusan de las llaves, los corchetes o los puntos y comas. Para quienes usamos lectores de pantalla, escuchar esa sinfonía de signos a cada segundo es agotador y confuso.
Python es diferente. Este lenguaje fue creado con una idea hermosa: que escribir código sea tan fácil como leer un libro en inglés simple. En lugar de símbolos aturdidores que saturan tu síntesis de voz, Python usa palabras limpias y corrientes como print, para que la computadora nos hable, o input, para que nos escuche. Es directo, ordenado y tiene un ritmo natural ideal para JAWS y NVDA.
Olvídate de los manuales aburridos: una metodología humana.
Este curso no se parece en nada a un libro de texto escolar. No te vamos a saturar con palabras técnicas extrañas ni definiciones científicas. Vamos a avanzar a paso de tortuga, con paciencia, objetivos claros en cada lección y usando puros ejemplos de la vida cotidiana.
Cada semana encontrarás un capítulo nuevo estructurado en seis pasos muy sencillos:
1. Introducción: Una bienvenida amigable al tema de la semana.
2. Objetivos: Qué vas a ser capaz de hacer al terminar de leer.
3. Explicaciones con analogías: Lógica explicada con cosas que ya conoces, como preparar una receta de cocina o guardar ropa en cajas con etiquetas.
4. Ejercicios paso a paso: Te diremos exactamente qué escribir en el teclado, letra por letra, símbolo por símbolo.
5. Prácticas con tu lector de pantalla: Indicaciones precisas para que configures tu JAWS o NVDA y aprendas a escuchar la estructura del código con total seguridad.
6. Resultados: La forma de comprobar, usando solo tus oídos, que tu programa funciona a la perfección.
Fecha de estreno confirmada.
No te pierdas este gran lanzamiento. El viaje comenzará con la publicación del Capítulo 1 el domingo 5 de julio de 2026.
A partir de ese día, publicaremos un capítulo por semana durante 15 semanas consecutivas. Cada semana tendrás una nueva entrega garantizada, paso a paso y de forma exclusiva aquí, en el blog de la Comunidad TifloTec.
No importa tu edad, tu ocupación o si nunca en tu vida has tocado una línea de código. Queremos demostrarte que las barreras se caen cuando las explicaciones son claras y accesibles. Prepara tu teclado, pierde el miedo y ¡nos leemos el 5 de julio para empezar a programar juntos!
# Plan de Trabajo Semanal: Manual de Python para Novicios Absolutos (15 Capítulos)
## Bloque 1: Los Cimientos y la Preparación (Semanas 1 a 4)
### Semana 1: Capítulo 1 — El nacimiento de Python (Un poco de historia)
* **1. Introducción:** Presentación motivacional. Romper el mito de que programar es para genios o requiere ver códigos de colores.
* **2. Objetivos del Capítulo:** Comprender el origen de Python y por qué su diseño beneficia al usuario de lector de pantalla.
* **3. Explicaciones y Analogías:** La historia de Guido van Rossum (Navidad de 1989), el origen del nombre por el grupo de comedia Monty Python y la analogía del "Robot Ciego y la Receta".
* **4. Ejercicio paso a paso:** Creación mental de una secuencia de pasos lógicos (algoritmo cotidiano) para un contestador automático en el timbre de una casa.
* **5. Prácticas:** Escribir en un cuaderno de notas accesible o archivo de texto una receta detallada para que un robot prepare un café sin cometer errores de orden.
* **6. Resultados:** El estudiante logra estructurar una secuencia lógica de pasos de arriba hacia abajo sin usar tecnicismos.
### Semana 2: Capítulo 2 — El sistema operativo y el lector de pantalla
* **1. Introducción:** Explicación de cómo percibimos el código a través del texto plano en lugar de la vista.
* **2. Objetivos del Capítulo:** Entender la relación entre Windows, Python y la síntesis de voz de JAWS y NVDA.
* **3. Explicaciones y Analogías:** La analogía de la "Orquesta y el Narrador". Qué es el texto plano y por qué elimina la fatiga auditiva de símbolos (llaves, puntos y comas).
* **4. Ejercicio paso a paso:** Simulación del viaje de una orden ($5 + 3$) desde el teclado, pasando por el intérprete, hasta la verbalización del lector.
* **5. Prácticas:** Configurar el nivel de puntuación de JAWS o NVDA en "Todo" o "Mucho" para acostumbrarse a escuchar caracteres individuales.
* **6. Resultados:** El estudiante identifica de oído símbolos como paréntesis, comillas y signos matemáticos en una línea de texto de prueba.
### Semana 3: Capítulo 3 — Instalando nuestras herramientas de trabajo
* **1. Introducción:** Guía de acceso al instalador oficial de Python usando comandos de navegación web.
* **2. Objetivos del Capítulo:** Descargar e instalar Python de manera autónoma utilizando exclusivamente el teclado.
* **3. Explicaciones y Analogías:** La analogía del "Camión de mudanzas y el cocinero". Explicación de qué es la ruta del sistema (`PATH`) y por qué es una llave maestra.
* **4. Ejercicio paso a paso:** Navegación en la web oficial usando la tecla `B` (Botones) en JAWS/NVDA para descargar el instalador correcto.
* **5. Prácticas:** Ejecutar el instalador, navegar con `Tabulador`, verificar la casilla "Add python.exe to PATH" con la `Barra Espaciadora` y ejecutar "Install Now".
* **6. Resultados:** Escuchar la confirmación de JAWS (*"Checked"*) o NVDA (*"Verificado"*) en la casilla del PATH y finalizar la instalación con éxito.
### Semana 4: Capítulo 4 — Nuestro primer taller (El Bloc de notas y la Terminal)
* **1. Introducción:** Presentación del entorno donde se escribe y el entorno donde se ejecuta el código.
* **2. Objetivos del Capítulo:** Aprender a guardar archivos con la extensión `.py` y a abrir la consola de comandos de Windows (CMD).
* **3. Explicaciones y Analogías:** La analogía de "La libreta de notas (fábrica)" y "El Símbolo del sistema (el escenario donde el actor habla)".
* **4. Ejercicio paso a paso:** Abrir el Bloc de notas (`Windows + R`, escribir `notepad`), escribir una palabra cualquiera y guardarlo como `programa.py` usando comillas en el nombre para evitar el `.txt`.
* **5. Prácticas:** Abrir la terminal (`Windows + R`, escribir `cmd`), escribir el comando `python --version` y escuchar la lectura de la versión instalada.
* **6. Resultados:** El lector de pantalla verbaliza con éxito el número de versión de Python dentro de la consola de comandos de Windows.
---
## Bloque 2: Primeros Pasos con el Código (Semanas 5 a 8)
### Semana 5: Capítulo 5 — ¿Cómo piensa la computadora? (Instrucciones secuenciales)
* **1. Introducción:** Explicación del flujo de ejecución lineal en programación.
* **2. Objetivos del Capítulo:** Entender que la computadora ejecuta las órdenes estrictamente de arriba hacia abajo, una por una.
* **3. Explicaciones y Analogías:** La analogía del "Lector de casetes" o "La lectura con línea Braille". Qué pasa si el orden de los factores altera el producto lógico.
* **4. Ejercicio paso a paso:** Analizar un bloque de tres instrucciones lógicas cotidianas desordenadas y ordenarlas con las flechas de dirección del teclado.
* **5. Prácticas:** Escribir un guion de pasos lógicos en texto plano para simular el encendido de una computadora, asegurando que el paso de "presionar el botón" ocurra antes de "escribir la contraseña".
* **6. Resultados:** El estudiante comprende el concepto de flujo secuencial antes de escribir su primera función en Python.
### Semana 6: Capítulo 6 — El primer saludo del programa (La función `print`)
* **1. Introducción:** Escritura de la primera línea de código real en Python para generar salida de texto.
* **2. Objetivos del Capítulo:** Dominar la sintaxis de la función `print` y comprender la importancia de los delimitadores de texto (comillas).
* **3. Explicaciones y Analogías:** La analogía del "Megáfono". Explicación detallada de la sintaxis leyendo símbolo por símbolo: letra p, letra r, abrir paréntesis, abrir comillas.
* **4. Ejercicio paso a paso:** Escribir `print("Hola Mundo")` en el archivo `.py` y ejecutarlo desde la terminal escribiendo `python programa.py`.
* **5. Prácticas:** Modificar el texto entre comillas para que el programa diga el nombre del estudiante y comprobar que el lector de pantalla lo verbalice al ejecutarlo.
* **6. Resultados:** Ejecución exitosa del script en la consola sin errores de sintaxis (*"SyntaxError"*).
### Semana 7: Capítulo 7 — Las cajas con nombre (Variables de texto)
* **1. Introducción:** Introducción al concepto de almacenamiento de información en la memoria de la computadora.
* **2. Objetivos del Capítulo:** Crear y utilizar variables que almacenen cadenas de texto (strings) sin tecnicismos complejos.
* **3. Explicaciones y Analogías:** La analogía de la "Caja de zapatos con etiqueta en la tapa". El signo de igual (`=`) visto como la acción de meter algo dentro de la caja.
* **4. Ejercicio paso a paso:** Escribir la línea `usuario = "Diego"` y luego usar `print(usuario)` en la línea de abajo para que el megáfono lea el contenido de la caja.
* **5. Prácticas:** Crear dos variables diferentes (`saludo` y `nombre`), asignarles textos separados y hacer que el programa imprima el contenido de ambas en líneas sucesivas.
* **6. Resultados:** El programa imprime el contenido guardado en las variables en lugar de imprimir los nombres de las variables textualmente.
### Semana 8: Capítulo 8 — Cajas con números y cuentas simples
* **1. Introducción:** Manipulación de datos numéricos enteros y operaciones matemáticas básicas.
* **2. Objetivos del Capítulo:** Distinguir entre una caja que guarda palabras y una caja que guarda números, y realizar operaciones aritméticas.
* **3. Explicaciones y Analogías:** La analogía de "La calculadora interna". Por qué los números no llevan comillas (si tienen comillas son texto, si no tienen comillas se pueden sumar).
* **4. Ejercicio paso a paso:** Crear las variables `numero1 = 10` y `numero2 = 5`, crear una tercera variable `resultado = numero1 + numero2` e imprimirla.
* **5. Prácticas:** Escribir un programa que calcule los años que tendrás en el próximo siglo sumando un número fijo a tu edad actual.
* **6. Resultados:** La consola muestra el resultado matemático correcto (por ejemplo, `15`) en lugar de juntar los textos de forma literal.
---
## Bloque 3: Interacción y Decisiones (Semanas 9 a 12)
### Semana 9: Capítulo 9 — La computadora nos escucha (La función `input`)
* **1. Introducción:** Crear interactividad permitiendo que el usuario ingrese datos desde el teclado mientras el programa corre.
* **2. Objetivos del Capítulo:** Utilizar la función `input` para capturar texto y detener el flujo del programa hasta recibir una pulsación de `Enter`.
* **3. Explicaciones y Analogías:** La analogía del "Formulario con espacio en blanco" o "La recepcionista que espera tu respuesta".
* **4. Ejercicio paso a paso:** Escribir `nombre = input("Escribe tu nombre: ")` seguido de `print("Hola " + nombre)` para fusionar textos.
* **5. Prácticas:** Crear un script que pregunte por teclado tu país de residencia y responda con un mensaje que diga "¡Qué bonito debe ser vivir en " seguido del país ingresado.
* **6. Resultados:** El programa se detiene de forma accesible, permite escribir, captura los caracteres y el lector de pantalla lee el saludo combinado final.
### Semana 10: Capítulo 10 — El camino se divide (La condición `if`)
* **1. Introducción:** Introducción a la lógica condicional elemental.
* **2. Objetivos del Capítulo:** Aprender a evaluar si una afirmación es verdadera para ejecutar una línea de código específica.
* **3. Explicaciones y Analogías:** La analogía del "Inspector de boletos en la entrada" o "El semáforo". Introducción al uso de los dos puntos (`:`) al final de la condición.
* **4. Ejercicio paso a paso:** Crear un programa que capture una edad, y si la edad es igual o mayor a 18, muestre el mensaje "Puedes pasar".
* **5. Prácticas:** Escribir una condición simple donde el programa valide si una palabra secreta introducida por el usuario es correcta (por ejemplo, si la clave es "1234").
* **6. Resultados:** El programa ejecuta la acción oculta solo si la condición se cumple exactamente; de lo contrario, termina en blanco sin errores.
### Semana 11: Capítulo 11 — El Plan B del programa (La condición `else`)
* **1. Introducción:** Expansión de la lógica condicional agregando alternativas automáticas cuando la condición principal falla.
* **2. Objetivos del Capítulo:** Implementar la estructura `else` para asegurar que el programa siempre ofrezca una respuesta al usuario.
* **3. Explicaciones y Analogías:** La analogía de la "Bifurcación en el camino" o del "Plan B en caso de lluvia".
* **4. Ejercicio paso a paso:** Retomar el código del capítulo anterior y añadir la palabra `else:` en una línea nueva para mostrar el mensaje "Acceso denegado" si no se cumple la condición.
* **5. Prácticas:** Diseñar un validador de respuestas para una pregunta de trivia simple (por ejemplo, ¿en qué año estamos?). Si acierta da una felicitación, si falla da la respuesta correcta.
* **6. Resultados:** Al probar el programa introduciendo datos incorrectos, el lector de pantalla verbaliza el mensaje de alternativa (`else`) de manera fluida.
### Semana 12: Capítulo 12 — El secreto de la sangría (Los espacios en Python)
* **1. Introducción:** Explicación técnica y práctica del concepto de indentación en Python, un punto crítico para la accesibilidad.
* **2. Objetivos del Capítulo:** Aprender a configurar y escuchar los espacios al inicio de las líneas en JAWS y NVDA para evitar errores estructurales.
* **3. Explicaciones y Analogías:** La analogía de "Las habitaciones dentro de una casa". Un bloque indentado es una habitación interna; si no entras con los 4 espacios de distancia, estás fuera de la estructura.
* **4. Ejercicio paso a paso:**
* **En NVDA:** `NVDA + N` -> Preferencias -> Opciones -> Documentos -> Activar "Anunciar sangría de línea".
* **En JAWS:** `JAWS + V` -> Buscar "Sangría" -> Configurar a "Anunciar espacios o tabulaciones".
* **5. Prácticas:** Escribir un bloque `if` e identificar auditivamente los 4 espacios reglamentarios antes de la instrucción interna presionando la flecha abajo.
* **6. Resultados:** El estudiante reconoce mediante voz sintética si una línea está alineada correctamente o si generará un error de sangría (*"IndentationError"*).
---
## Bloque 4: Colecciones, Repeticiones y Proyecto Final (Semanas 13 a 15)
### Semana 13: Capítulo 13 — La canasta de cosas (Introducción a las Listas)
* **1. Introducción:** Manejo de estructuras de datos lineales para agrupar múltiples elementos bajo un solo nombre.
* **2. Objetivos del Capítulo:** Crear una lista básica, entender el concepto de índice (posición) y acceder a un elemento específico de oído.
* **3. Explicaciones y Analogías:** La analogía del "Pastillero semanal" o "La fila de personas en el banco". Explicación clave de por qué las computadoras empiezan a contar desde la posición cero ($0$).
* **4. Ejercicio paso a paso:** Escribir `colores = ["Rojo", "Verde", "Azul"]` e imprimir el primer elemento usando `print(colores[0])`.
* **5. Prácticas:** Crear una lista con los nombres de tres lectores de pantalla y configurar el código para que imprima en la terminal el elemento del medio.
* **6. Resultados:** El lector lee correctamente el elemento seleccionado mediante su número de posición entre corchetes.
### Semana 14: Capítulo 14 — El disco rayado (El bucle `for` para repetir)
* **1. Introducción:** Automatización de tareas repetitivas mediante ciclos simples.
* **2. Objetivos del Capítulo:** Utilizar el bucle `for` para recorrer una lista y leer todos sus elementos uno tras otro sin duplicar líneas de código.
* **3. Explicaciones y Analogías:** La analogía de "Pasar lista en la escuela" o del "Inspector que revisa los asientos de un vagón uno por uno".
* **4. Ejercicio paso a paso:** Usar la lista de colores anterior y escribir: `for color in colores:` seguido de 4 espacios y `print(color)`.
* **5. Prácticas:** Crear una lista de números y hacer que el programa los recorra imprimiendo un mensaje personalizado para cada número de forma secuencial.
* **6. Resultados:** Al ejecutar el script, la terminal muestra y el lector verbaliza toda la lista de elementos de arriba hacia abajo de forma automática.
### Semana 15: Capítulo 15 — La gran obra (Tu primer programa completo)
* **1. Introducción:** Integración de todos los conocimientos adquiridos a lo largo de las 15 semanas en un único proyecto autónomo.
* **2. Objetivos del Capítulo:** Escribir un script estructurado, limpio y funcional que demuestre la asimilación del nivel novicio.
* **3. Explicaciones y Analogías:** La analogía de "La inauguración del edificio". Repaso general de cómo interactúan la historia, las herramientas, las variables, el ingreso de datos, las decisiones con sangría y la salida de audio.
* **4. Ejercicio paso a paso:** Desarrollo guiado de un **Asistente de Bienvenida Accesible**: El programa saluda, pregunta el nombre y la edad del usuario, verifica mediante un `if` si es mayor de edad, extrae una recomendación de una lista interna y se despide de forma personalizada.
* **5. Prácticas:** Escribir el código completo desde cero en un archivo limpio, guardarlo, corregir posibles fallas de lectura o espacios en el editor de texto y ejecutarlo de forma impecable en la consola de comandos de Windows.
* **6. Resultados:** Un programa completamente interactivo, funcional y libre de errores que responde de manera accesible a las entradas del usuario a través del lector de pantalla.