Computer Science

La ciencia de la computación estudia los principios teóricos, metodológicos y prácticos que sustentan el diseño, desarrollo y análisis de sistemas informáticos. Abarca desde fundamentos matemáticos hasta paradigmas avanzados de programación y arquitecturas distribuidas.
Esta nota actúa como índice central de conocimiento técnico y guía estructurada de estudio.


Áreas de Desarrollo

Exploran las prácticas, herramientas y enfoques aplicados en la construcción y mantenimiento de software.


Metodologías y Arquitectura

Principios que orientan la organización, diseño y evolución del software hacia soluciones mantenibles y escalables.

  • SOLID
    Principios orientados a la responsabilidad única, extensibilidad y desacoplamiento.
  • CLEAN
    Arquitectura enfocada en independencia de frameworks, testabilidad y separación de capas.
  • DDD Domain-Driven Design
    Modelado de dominios complejos con bounded contexts, aggregates, entities y ubiquitous language.
  • POO Programación Orientada a Objetos
    Paradigma centrado en clases, objetos, herencia, encapsulamiento y polimorfismo.
  • AOP Programación Orientada a Aspectos
    Separación de preocupaciones transversales mediante aspectos y advices.
  • PF Programación Funcional
    Basada en la inmutabilidad, composición de funciones y evaluación declarativa.
    Incluye conceptos como map, reduce, lambda expressions y pure functions.
  • DSL

Backend y Redes

Componentes esenciales para el desarrollo del lado del servidor, APIs y conectividad entre servicios.

  • CORS
    Control del acceso entre dominios y políticas de seguridad en peticiones HTTP.
  • Lambda Functions
    Ejecución de funciones sin servidor (serverless), orientadas a eventos y escalabilidad automática.
    Se relacionan con entornos como AWS Lambda, Azure Functions o Google Cloud Functions.

Documentación y Recursos Formativos

Fundamentos y cursos base que establecen las competencias esenciales de un informático.

  • Introducción a la programación
    Conceptos de algoritmos, variables, control de flujo, funciones y estructuras básicas.
  • Comunicación entre Procesos
    Sincronización, semáforos, colas, tuberías y memoria compartida.
  • Computer science - curso de inicio CS50
    Programa de Harvard para aprender C, estructuras de datos, algoritmos y desarrollo web.
  • StructureInterpretationComputer1997
    • https://github.com/FedeHC/SICP-ES/blob/master/secciones/04-contenidos.md
    • https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html
    • fundamentos 3 primero mas extensión
    • mutaciones objetos
    • abstracciones
    • interfaz de estructuras de datos
    • crear implementaciones
    • programación funcional
    • abstracciones
    • pilares de programacion
    • su propio lenguaje
    • ejercicios

Entrevistas Técnicas

Preparación para procesos de selección en desarrollo de software.

  • DevCaressguia-entrevistas-de-programacion-guia-entrevistas-de-programacion
    Guía con ejercicios prácticos, resolución de problemas y estrategias de comunicación técnica.
    Incluye patrones de preguntas, estructuras de datos frecuentes y tips para whiteboard interviews.

Elementos y Guías de Conocimiento

Bloques fundamentales de la teoría computacional y la ingeniería de software.


Integraciones y Extensiones

Expansiones hacia áreas relacionadas y multidisciplinarias.

  • Machine Learning (si existe en la base de notas)
    Aplicación de algoritmos de aprendizaje y análisis de datos.
  • ciberseguridad Cifrado, autenticación, protocolos seguros y auditoría de sistemas.
  • DevOps y CICD Automatización del despliegue, pipelines de integración continua y observabilidad.
  • Cloud Computing cloud Infraestructura escalable, servicios distribuidos y gestión de recursos virtualizados.

Omnivore CS

type: list
name: "Notas con #CS en Omnivore"
order:
  - property: date_saved
    direction: desc
columns:
  - file.name
  - date_saved
filters:
  and:
    - file.inFolder("Omnivore")
    - file.hasTag("CS", "computer_science")
views:
  - type: table
    name: Table
    sort:
      - property: file.mtime
        direction: DESC

`