wandres.dev
El lenguaje y su entorno de sistemas

Domina C23 moderno
hasta nivel dios

De la sintaxis de C23 al nivel PhD: punteros, memoria, Meson, sanitizers, ABI, libc/musl, freestanding, concurrencia y tu propia libc.

La ruta

31 niveles, de novato a dios

Cada nivel construye sobre el anterior. Sin saltos, sin huecos.

Ontología Nivel 0 · El mapa de C y la programación de sistemas

La ontología completa: qué es C, dónde vive, cómo se relaciona todo, y un mapa mental de todo el territorio que vas a conquistar.

Mapa mentalOntologíaPanorama

Novato Nivel 1 · Por qué C hoy

Historia, filosofía y el lugar de C23 frente a versiones anteriores. La mentalidad del programador de sistemas.

HistoriaFilosofíaC23

Aprendiz Nivel 2 · Setup y toolchain

gcc y clang, compilar con -std=c23, tu primer programa y el entorno de desarrollo moderno.

gcc/clang-std=c23Hello

Iniciado Nivel 3 · El proceso de compilación

Las cuatro fases: preprocesado, compilación, ensamblado y linking. Qué produce exactamente cada una.

PreprocesadorEnsambladoLinking

Practicante Nivel 4 · Tipos y novedades de C23

Tipos fundamentales y lo nuevo: auto, constexpr, nullptr, typeof, _BitInt y enums con tipo fijo.

autoconstexpr_BitInt

Competente Nivel 5 · Operadores y expresiones

Precedencia, promociones enteras, conversiones implícitas y sus trampas clásicas.

PrecedenciaPromocionesConversiones

Hábil Nivel 6 · Control de flujo

if, switch, bucles y las mejoras de C23. Flujo idiomático, claro y sin sorpresas.

if/switchBuclesFlujo

Diestro Nivel 7 · Funciones a fondo

Parámetros, retorno, scope, storage classes e inline. Cómo se organiza y se llama el código.

Scopestorage classinline

Ninja Nivel 8 · Punteros I: fundamentos

El concepto que define a C: direcciones, dereferencia, aritmética de punteros y nullptr.

DireccionesAritméticanullptr

Adepto Nivel 9 · Arrays y strings

Decaimiento a puntero, arrays de longitud variable y el manejo (peligroso) de cadenas.

DecayVLACadenas

Experto Nivel 10 · Punteros II: avanzado

Punteros a función, dobles punteros, const correctness y patrones profesionales.

A funciónDoblesconst

Veterano Nivel 11 · Structs y unions

Layout en memoria, alineación, padding, bitfields y flexible array members.

AlineaciónPaddingBitfields

Especialista Nivel 12 · Enums y typedef

Enumeraciones con tipo subyacente fijo (C23) y el arte de typedef para modelar.

enum C23typedefModelado

Ingeniero Nivel 13 · Memoria dinámica

malloc, calloc, realloc y free. El heap, los patrones correctos y los errores clásicos.

malloc/freeHeapFugas

Arquitecto Nivel 14 · Gestión de memoria avanzada

Arenas, pools, ownership manual y estrategias de asignación que escalan sin fugas.

ArenasPoolsOwnership

Táctico Nivel 15 · El preprocesador a fondo

Macros, #embed, X-macros y _Generic: la metaprogramación que es posible en C.

#embedX-macros_Generic

Modular Nivel 16 · Modularidad y linkage

Unidades de traducción, headers, extern, y linkage interno frente a externo.

HeadersexternLinkage

Constructor Nivel 17 · Build con Meson

El sistema de build moderno: targets, dependencias, opciones y sanitizers integrados.

MesonTargetsOpciones

Herrero Nivel 18 · Make y el tooling clásico

Makefiles, autotools y cuándo elegir cada herramienta de construcción.

MakeAutotoolsBuild

Bibliotecario Nivel 19 · Bibliotecas estáticas y dinámicas

Crear y usar .a y .so, y las implicaciones profundas de cada tipo de enlace.

.a / .soEstáticoDinámico

Enlazador Nivel 20 · El linker y ELF

Resolución de símbolos, visibilidad, versioning, LTO y el formato ELF por dentro.

SímbolosELFLTO

Maestro Nivel 21 · ABI y calling conventions

La interfaz binaria: System V, convenciones de llamada y estabilidad de ABI.

System VCalling convABI

Sabio Nivel 22 · libc: glibc vs musl

Qué es una libc, syscalls, POSIX, y las diferencias reales entre glibc y musl.

glibcmuslsyscalls

Mago Nivel 23 · Freestanding y no-libc

-ffreestanding, -nostdlib, bare metal y escribir tu propio runtime mínimo.

freestanding-nostdlibbare metal

Guardián Nivel 24 · Sanitizers

ASan, UBSan, MSan y TSan: cazar bugs de memoria y comportamiento en ejecución.

ASanUBSanTSan

Cazador Nivel 25 · Análisis estático y fuzzing

clang-tidy, cppcheck, Valgrind y libFuzzer: encontrar bugs antes de que ocurran.

clang-tidyValgrindFuzzing

Centinela Nivel 26 · Seguridad y hardening

Mitigaciones del compilador, stack protector, secure coding y superficie de ataque.

HardeningMitigacionesSecure C

Sincronizador Nivel 27 · Concurrencia

Hilos C11/C23, atomics, el modelo de memoria y la sincronización correcta.

threadsatomicsModelo mem

Optimizador Nivel 28 · Bajo nivel y rendimiento

Inline asm, SIMD/intrinsics, jerarquía de caché, perf y optimización guiada por datos.

asmSIMDperf

Semidiós Nivel 29 · Undefined Behavior

El estándar como fuente de verdad, el UB a fondo y cómo lo explota el optimizador.

UBEstándarOptimización

Dios Nivel 30 · PhD: construye lo imposible

Tu propia libc mínima, un allocator desde cero y una mirada a los internals del compilador.

libc propiaallocatorinternals
151lecciones
31niveles
0→∞de cero a dios
Qué vas a dominar

Todo lo que hace a un experto

🧠

Punteros y memoria

El concepto que define a C, la gestión manual del heap y las estrategias que escalan.

C23 moderno

constexpr, nullptr, typeof, _BitInt, #embed: el C de siempre, más afilado.

🏗️

Build y linking

Meson, Make, bibliotecas .a/.so, el linker y el formato ELF por dentro.

🔗

ABI

Las convenciones de llamada y la interfaz binaria que une el software compilado.

📚

libc y freestanding

glibc vs musl, las syscalls, y el mundo sin libc: bare metal.

🛡️

Sanitizers y fuzzing

ASan, UBSan, análisis estático y fuzzing: caza bugs antes de que ocurran.

Concurrencia y bajo nivel

Atomics, el modelo de memoria, SIMD, caché y perf.

🔱

Nivel PhD

Tu propia libc, un allocator desde cero, y cómo funciona un compilador.

gcc/clangC23MesonmuslASanELFfreestandingUB

¿Listo para dominar C23 moderno?

Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.

Comenzar el camino →