> ## Documentation Index
> Fetch the complete documentation index at: https://apuntes.simulab.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Herramientas del programador: temas, ideas clave y simuladores

> Herramientas que usa a diario cualquier programador: control de versiones con Git y GitHub, ramas, merge y pull requests, y expresiones regulares para buscar, validar y transformar texto.

Saber programar no es solo conocer un lenguaje: también hay que manejar las herramientas con las que se trabaja cada día. **Git** guarda la historia de un proyecto y permite colaborar sin pisarse; las **expresiones regulares** buscan, validan y transforman texto en una línea. Las dos se usan en cualquier lenguaje, editor y sistema operativo.

## Las ideas clave del bloque

### Control de versiones

Cada **commit** es una foto del proyecto. Las **ramas** permiten trabajar en varias cosas a la vez, y el **merge** las une. En equipo, los cambios se proponen con **pull requests** y se revisan antes de entrar en la rama principal.

### Patrones de texto

Una expresión regular describe un conjunto de cadenas: `\d{8}[A-Z]` son ocho dígitos y una letra. Con clases de caracteres, cuantificadores, anclas y grupos se cubre casi todo lo que hace falta en el día a día.

## Orden recomendado

**1. Git**

Commits, ramas, merge, conflictos, GitHub y pull requests.

**2. Expresiones regulares**

Sintaxis, grupos y el módulo re de Python.

## Temas de este bloque

> [card] [Git](https://apuntes.simulab.es/programacion/herramientas/git.md)
>
> Introducción a Git y GitHub: qué es el control de versiones, repositorio, área de preparación y commits, comandos básicos (init, add, commit, status, log, diff), ramas y merge, resolver conflictos, remotos (clone, push, pull), pull requests, .gitignore, deshacer cambios y buenas prácticas, con ejemplos.

> [card] [Expresiones regulares](https://apuntes.simulab.es/programacion/herramientas/expresiones-regulares.md)
>
> Expresiones regulares explicadas: caracteres literales y especiales, clases de caracteres, cuantificadores, anclas, grupos y capturas, alternativas, cuantificadores voraces y perezosos, el módulo re de Python (search, findall, sub, split) y ejemplos para validar correos, teléfonos, fechas y DNI.

## Simuladores relacionados en Simulab

> [card] [Algoritmos de ordenación](https://simulab.es/programacion/ordenacion)
>
> Burbuja, selección, inserción, merge sort y quicksort animados.

> [card] [Recorridos de grafos](https://simulab.es/programacion/grafos)
>
> La historia de Git es un grafo de commits.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.