Qué es C#
En resumen: C# es el lenguaje de la plataforma .NET para juegos con Unity, la web con ASP.NET Core y aplicaciones para Windows: el código se compila a IL, y .NET lo ejecuta.
Problema
Por qué C#
Hay cientos de lenguajes de programación. Cada uno sirve para algo, pero no todos sirven igual de bien para todo. Antes de dedicar meses a uno de ellos, es justo saber dónde lo vas a usar.
C# (se pronuncia «si sharp») es el lenguaje de la plataforma .NET de Microsoft:
- juegos con Unity: los scripts de Unity se escriben en C#, desde pequeños juegos para el teléfono hasta grandes títulos;
- sitios web y servicios web con ASP.NET Core;
- aplicaciones para Windows: desde programas de contabilidad hasta herramientas de oficina;
- servicios en la nube, sobre todo en Azure, la nube de Microsoft.
C# existe desde el año 2000 y avanza rápido: casi cada año sale una versión nueva con nuevas posibilidades.
La idea
Del texto al programa
El programa que escribes es texto normal en un archivo. Aquí tienes un programa completo:
class Program{ static void Main() { Console.WriteLine("El pedido n.º 1024 ha sido aceptado."); }}El pedido n.º 1024 ha sido aceptado.Por ahora no te preocupes por las palabras que hay en él. Llegaremos a ellas en la lección «Tu primer programa». Aquí importa otra cosa: el procesador de la computadora no entiende este texto. Algo tiene que traducirlo.
- Escribes el código fuente en un archivo llamado
Program.cs. - El compilador de C# revisa el texto en busca de errores y lo traduce a IL (Intermediate Language, lenguaje intermedio): un archivo con la extensión
.dll. El IL no está hecho para ningún procesador en concreto. - .NET (más exactamente, la parte que ejecuta los programas, el CLR) lee el IL y lo ejecuta en tu computadora.
Hay un .NET para Windows, macOS y Linux. Por eso el mismo programa compilado funciona en todos ellos. Esto se llama independencia de la plataforma.
class Program{ static void Main() { Console.WriteLine("El pedido n.º 1024 ha sido aceptado."); }}Paso a paso, en palabras
- Escribes el código fuente: texto normal en el archivo Program.cs.
- El compilador de C# lee el texto y lo revisa en busca de errores.
- Sale IL, un archivo con la extensión .dll. No está hecho para ningún procesador en concreto.
- El mismo .dll va sin cambios a Windows, macOS y Linux.
- El CLR de cada sistema ejecuta el IL. La salida es la misma.
Más precisamente, para curiosos
- La CLR no traduce todo el programa por adelantado. Traduce partes de él a código máquina mientras el programa se ejecuta, y optimiza más las partes que se ejecutan más a menudo. Esto se llama compilación JIT (just-in-time, «justo a tiempo»).
- La memoria. Cada programa ocupa memoria para sus datos. En lenguajes como C, el programador libera la memoria que ya no hace falta, y si se le olvida o se equivoca, el programa empieza a ocupar cada vez más memoria o se cae. C# lo hace por ti: el recolector de basura (garbage collector) encuentra los datos a los que el programa ya no puede llegar y libera su memoria.
- El antiguo .NET Framework funcionaba solo en Windows. El .NET de hoy (desde .NET Core en adelante) es una plataforma aparte que funciona en todas partes. Si encuentras en internet consejos sobre .NET Framework, puede que no te sirvan.
La idea
Qué aprenderás
El curso está formado por módulos. Cada módulo usa solo cosas de los anteriores:
- Fundamentos del lenguaje: variables, entrada y salida, cálculos, condiciones, bucles, arrays, texto.
- Métodos: código que escribes una vez y llamas muchas veces.
- Clases y objetos: tus propios tipos, como
OrderoStudent. - Herencia y polimorfismo: lo que comparten varios tipos, en un solo lugar.
- Errores y excepciones: qué hace el programa cuando algo sale mal.
- Web: cómo funciona internet, sitios web con ASP.NET MVC, servicios con WebAPI y aplicaciones de escritorio con WPF.
Fuera del camino principal hay juegos y proyectos: programas completos que construyes paso a paso.
Dos cosas por las que C# es conocido quedan fuera de este curso: LINQ (consultas sobre datos directamente en el código, como «los pedidos de más de 100 €, ordenados por fecha») y los hilos (varias cosas que el programa hace a la vez). Después del curso tendrás todo lo necesario para aprenderlos por tu cuenta.
La idea
Cómo se aprende aquí
Cada lección es una serie de tarjetas, una idea por tarjeta. Normalmente empieza con un problema de la práctica y después muestra qué pasa en realidad, a menudo con una animación junto al código. Luego viene una pequeña tarea: predecir la salida, completar lo que falta, encontrar el error. Al final hay un ejercicio que resuelves en tu propio editor y un test corto.
Tu progreso se guarda en el navegador: la lección continúa desde la tarjeta a la que llegaste.
El mapa de todo el curso está en la página principal del curso.
No te saltes los ejercicios. Leer código y escribir código son habilidades distintas, y la segunda solo se consigue escribiendo.
La idea
Los errores son parte del trabajo
Tus primeros programas a menudo no compilarán. Se te olvidará un punto y coma, unas comillas o una llave, y el compilador se negará.
No es una nota sobre ti. El mensaje de error está para ayudar: te dice en qué línea está el problema y cuál es. Los programadores con experiencia también ven estos mensajes todos los días. La diferencia es que han aprendido a leerlos con calma. Empezaremos a leerlos en la primera lección con código.
Si algo no sale durante mucho rato, déjalo y vuelve un poco más tarde. A menudo ves el error enseguida cuando lo miras de nuevo.
En resumen
En resumen
- C# se usa para juegos con Unity, la web con ASP.NET Core, aplicaciones para Windows y la nube.
- El código fuente (
Program.cs) se compila a IL (.dll), y .NET lo ejecuta en cualquier sistema. - La memoria la libera automáticamente el recolector de basura.
- El curso está formado por módulos, y cada lección por tarjetas. Los ejercicios se hacen en tu propio editor.
- Un mensaje de error es una ayuda, no una nota.
Lo siguiente es preparar tu computadora: qué instalar para poder ejecutar tu primer programa.