Curso de programación con CSharp
Conoce C#, el lenguaje de programación versátil utilizado en aplicaciones de escritorio, videojuegos y desarrollo web. Aprende a programar en C#.
C# (pronunciado "C Sharp") es un lenguaje de programación de alto nivel, orientado a objetos, desarrollado por Microsoft como parte de su plataforma .NET. Desde su lanzamiento en el año 2000, C# ha evolucionado constantemente para convertirse en uno de los lenguajes más versátiles y utilizados en el desarrollo de software profesional.
Características principales de C#
C# combina la potencia y eficiencia de lenguajes como C++ con la simplicidad y productividad de lenguajes como Java. Entre sus características más destacadas encontramos:
- Tipado estático: Proporciona verificación de tipos en tiempo de compilación, lo que ayuda a detectar errores tempranamente.
- Orientación a objetos: Implementa todos los conceptos fundamentales de la programación orientada a objetos.
- Gestión automática de memoria: Incluye un recolector de basura que libera al programador de la gestión manual de memoria.
- Interoperabilidad: Permite interactuar con código escrito en otros lenguajes y tecnologías.
- Multiplataforma: Gracias a .NET Core (ahora .NET 5+), permite desarrollar aplicaciones que funcionan en Windows, Linux y macOS.
Ámbitos de aplicación
La versatilidad de C# permite utilizarlo en una amplia variedad de escenarios:
- Desarrollo de aplicaciones de escritorio con Windows Forms o WPF
- Creación de aplicaciones web con ASP.NET
- Programación de videojuegos con Unity
- Desarrollo de aplicaciones móviles con Xamarin o MAUI
- Implementación de servicios en la nube y microservicios
- Desarrollo de aplicaciones empresariales y sistemas de gestión
Estructura del curso
Este curso está diseñado para llevarte desde los conceptos básicos hasta técnicas avanzadas de programación en C#, siguiendo una progresión lógica que te permitirá construir conocimientos sólidos paso a paso.
Introducción y entorno
Comenzaremos con una introducción al lenguaje C# y su ecosistema, aprendiendo a configurar el entorno de desarrollo y crear nuestros primeros proyectos. Conocerás las herramientas esenciales como Visual Studio o Visual Studio Code, y entenderás la estructura básica de un programa en C#.
Sintaxis fundamental
Exploraremos los elementos básicos del lenguaje, incluyendo:
- Tipos de datos primitivos y complejos
- Declaración y uso de variables y constantes
- Operadores aritméticos, lógicos y de comparación
- Interpolación de strings para formatear texto de manera eficiente
- Estructuras de control condicionales (if, switch) e iterativas (for, while, foreach)
- Definición y uso de funciones
- Expresiones lambda para código más conciso
- Manejo de valores nulos con operadores de nulabilidad
Cada concepto se reforzará con ejercicios prácticos y retos que te permitirán aplicar lo aprendido.
Programación Orientada a Objetos
La programación orientada a objetos es un paradigma fundamental en C#. Aprenderás:
- Definición de clases y objetos
- Propiedades y encapsulación para proteger los datos
- Constructores y destructores para inicializar y liberar recursos
- Miembros estáticos compartidos entre instancias
- Clases parciales para organizar código en múltiples archivos
- Herencia para reutilizar y extender funcionalidad
- Métodos virtuales y sobrecarga para personalizar comportamientos
- Métodos de extensión para añadir funcionalidad a tipos existentes
- Manejo de excepciones para gestionar errores
- Interfaces para definir contratos
- Clases abstractas para crear plantillas de implementación
- Polimorfismo para tratar objetos de diferentes tipos de manera uniforme
- Genéricos para crear código reutilizable con diferentes tipos
- Tuplas y tipos anónimos para estructuras de datos ligeras
- Delegados y eventos para programación basada en eventos
Colecciones y LINQ
Las estructuras de datos son esenciales para almacenar y manipular información. Estudiaremos:
- Arrays y listas para secuencias ordenadas de elementos
- Conjuntos para colecciones sin duplicados
- Diccionarios para pares clave-valor
- Colas y pilas para estructuras FIFO y LIFO
- LINQ (Language Integrated Query) para consultar colecciones de manera declarativa
Aprenderás a utilizar estas estructuras eficientemente y a realizar operaciones complejas sobre datos con LINQ.
Programación funcional
C# incorpora muchos conceptos de la programación funcional, que complementan el enfoque orientado a objetos:
- Fundamentos de la programación funcional
- Expresiones lambda para funciones anónimas concisas
- Delegados funcionales (Action, Func, Predicate)
- LINQ funcional con métodos de extensión
- Records para tipos inmutables
- Pattern matching para análisis estructural de datos
Testing
Finalmente, aprenderás a garantizar la calidad de tu código mediante:
- Testing unitario con xUnit, creando pruebas automatizadas para verificar el comportamiento de tu código
Metodología del curso
El curso combina explicaciones teóricas con ejemplos prácticos y retos que te permitirán aplicar lo aprendido. Cada sección incluye:
- Lecciones conceptuales con ejemplos de código
- Ejercicios prácticos para reforzar conocimientos
- Retos para poner a prueba tus habilidades
- Proyectos integradores que combinan múltiples conceptos
¿Por qué aprender C#?
Dominar C# te abrirá numerosas oportunidades profesionales:
- Es uno de los lenguajes más demandados en el mercado laboral
- Tiene una comunidad activa y abundante documentación
- Ofrece un ecosistema completo para desarrollo de software
- Proporciona herramientas de alta productividad
- Está en constante evolución con nuevas características
Además, los conceptos que aprenderás son transferibles a otros lenguajes de programación, especialmente aquellos con sintaxis similar como Java, JavaScript o TypeScript.
Requisitos previos
Este curso está diseñado para ser accesible tanto para principiantes como para programadores con experiencia en otros lenguajes. No se requieren conocimientos previos específicos, aunque una comprensión básica de conceptos de programación facilitará el aprendizaje.
A lo largo del curso, irás construyendo una base sólida de conocimientos en C# que te permitirá desarrollar aplicaciones profesionales y resolver problemas complejos de programación.
Tutoriales de CSharp
Aprende CSharp con tutoriales de programación en CSharp.
Introducción A C#
Introducción Y Entorno
Creación De Proyecto C#
Introducción Y Entorno
Variables Y Constantes
Sintaxis
Tipos De Datos
Sintaxis
Operadores
Sintaxis
Control De Flujo
Sintaxis
Funciones
Sintaxis
Estructuras De Control Iterativo
Sintaxis
Interpolación De Strings
Sintaxis
Estructuras De Control Condicional
Sintaxis
Manejo De Valores Nulos
Sintaxis
Clases Y Encapsulación
Programación Orientada A Objetos
Objetos
Programación Orientada A Objetos
Constructores Y Destructores
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Genéricos
Programación Orientada A Objetos
Métodos Virtuales Y Sobrecarga
Programación Orientada A Objetos
Clases Abstractas
Programación Orientada A Objetos
Interfaces
Programación Orientada A Objetos
Propiedades Y Encapsulación
Programación Orientada A Objetos
Métodos De Extensión
Programación Orientada A Objetos
Clases Y Objetos
Programación Orientada A Objetos
Clases Parciales
Programación Orientada A Objetos
Miembros Estáticos
Programación Orientada A Objetos
Tuplas Y Tipos Anónimos
Programación Orientada A Objetos
Arrays Y Listas
Colecciones Y Linq
Diccionarios
Colecciones Y Linq
Conjuntos, Colas Y Pilas
Colecciones Y Linq
Uso De Consultas Linq
Colecciones Y Linq
Linq Avanzado
Colecciones Y Linq
Colas Y Pilas
Colecciones Y Linq
Conjuntos
Colecciones Y Linq
Linq Básico
Colecciones Y Linq
Delegados Funcionales
Programación Funcional
Records
Programación Funcional
Expresiones Lambda
Programación Funcional
Linq Funcional
Programación Funcional
Fundamentos De La Programación Funcional
Programación Funcional
Pattern Matching
Programación Funcional
Testing Unitario Con Xunit
Testing
Excepciones
Excepciones
Delegados
Programación Asíncrona
Eventos
Programación Asíncrona
Lambdas
Programación Asíncrona
Uso De Async Y Await
Programación Asíncrona
Tareas
Programación Asíncrona
Ejercicios de programación de CSharp
Evalúa tus conocimientos en CSharp con ejercicios de programación CSharp de tipo Test, Puzzle, Código y Proyecto con VSCode.
CRUD en C# de modelo Customer sobre una lista
Arrays y listas
Objetos
Excepciones
Eventos
Lambdas
Diccionarios en C#
Variables y constantes
Tipos de datos
Herencia
Operadores
Uso de consultas LINQ
Clases y encapsulación
Uso de consultas LINQ
Excepciones
Control de flujo
Eventos
Diccionarios
Tipos de datos
Conjuntos, colas y pilas
Lambdas
Conjuntos, colas y pilas
Uso de async y await
Tareas
Constructores y destructores
Operadores
Arrays y listas
Polimorfismo
Polimorfismo
Variables y constantes
Proyecto colecciones y LINQ en C#
Clases y encapsulación
Creación de proyecto C#
Uso de async y await
Funciones
Delegados
Delegados
Constructores y destructores
Objetos
Control de flujo
Funciones
Tareas
Proyecto sintaxis en C#
Herencia C Sharp
OOP en C Sharp
Diccionarios
Introducción a C#
Tipo de tecnología
Lenguaje
Categoría laboral
Backend
Año de lanzamiento
2000
Developers
Microsoft
Todos los módulos del curso de CSharp
CSharp
Introducción y entorno
CSharp
Sintaxis
CSharp
Programación Orientada a Objetos
CSharp
Colecciones y LINQ
CSharp
Programación funcional
CSharp
Testing
CSharp
Excepciones
CSharp
Programación asíncrona
Otras tecnologías
C
C
Backend
Lenguaje de propósito general, eficiente y de bajo nivel.
TypeScript
TypeScript
Full Stack
Superconjunto de JavaScript con tipado estático.
PySpark
PySpark
Big Data
Motor unificado de análisis de datos distribuido para grandes volúmenes.
Go
Go
Backend
Lenguaje de programación eficiente y concurrente creado por Google.
Django
Django
Backend
Framework web Python para desarrollo rápido y seguro.
SpringBoot
SpringBoot
Backend
Framework para desarrollo rápido de aplicaciones Java.
Laravel
Laravel
Backend
Framework de PHP para desarrollo web backend.
Node
Node
Backend
Node.js es un entorno de ejecución de JavaScript basado en el motor V8 de Google.
Java
Java
Backend
Lenguaje de programación versátil y multiplataforma.
OpenCV
OpenCV
Ciencia de Datos e IA
Biblioteca de Python para Computer Vision en imágenes y vídeos.
Flask
Flask
Backend
Microframework web para Python, simple y flexible.
Nest
Nest
Backend
Framework Node.js para crear aplicaciones escalables y eficientes.
Selenium
Selenium
Testing / QA
Suite de herramientas open-source para automatizar navegadores web y pruebas de software de interfaz de usuario.
React
React
Frontend
Librería framework para frontend interfaces de usuario.
Vuejs
Vuejs
Frontend
Framework de JS progresivo para construir interfaces de usuario reactivas y modulares.
Docker
Docker
DevOps
Plataforma de contenedores para aplicaciones portátiles.
PHP
PHP
Backend
Lenguaje de programación para desarrollo web del lado del servidor, el motor del ecosistema Wordpress.
Streamlit
Streamlit
Ciencia de Datos e IA
Biblioteca Python para prototipado web UI rápido en ciencia de datos.
Seaborn
Seaborn
Ciencia de Datos e IA
Biblioteca de visualización de datos para Python.
SQL
SQL
Bases de datos
Lenguaje para gestionar bases de datos relacionales.
FastAPI
FastAPI
Backend
Framework web moderno y rápido para Python.
Fundamentos
Fundamentos
Full Stack
Fundamentos y bases de la programación de software moderna.
TensorFlow
TensorFlow
Ciencia de Datos e IA
Biblioteca Python para redes neuronales en Deep Learning
TailwindCSS
TailwindCSS
Frontend
Framework de utilidades CSS para diseños rápidos y personalizables.
Git
Git
DevOps
Sistema de control de versiones distribuido.
ScikitLearn
ScikitLearn
Ciencia de Datos e IA
Biblioteca de aprendizaje automático en Python.
Kotlin
Kotlin
Backend
Lenguaje de programación moderno y seguro para aplicaciones Android.
Numpy
Numpy
Ciencia de Datos e IA
Biblioteca Python para computación científica y matrices.
HTML
HTML
Frontend
Lenguaje de marcado para estructurar contenido web.
Bash
Bash
Administración de sistemas
Intérprete de comandos para sistemas Unix y Linux.
Bootstrap
Bootstrap
Frontend
Framework CSS para diseños web responsive y modernos.
Matplotlib
Matplotlib
Ciencia de Datos e IA
Biblioteca Python para crear gráficos y visualizaciones.
Hibernate
Hibernate
Backend
ORM para Java, simplifica el acceso a bases de datos.
Pandas
Pandas
Ciencia de Datos e IA
Herramienta Python para análisis y manipulación de datos.
JavaScript
JavaScript
Full Stack
Lenguaje de scripting para desarrollo web interactivo.
Angular
Angular
Frontend
Framework web de Google para aplicaciones dinámicas.
CSS
CSS
Frontend
Lenguaje de estilo para diseñar páginas web atractivas.
Python
Python
Backend
Lenguaje de programación fácil de aprender y versátil.