Ruta de aprendizaje CSharp: Ruta de aprendizaje Xamarin

Introducción a C

Esta pista proporciona una introducción al lenguaje de programación C#.

Introducción a C# [CSC101]

Un paso clave para convertirse en un desarrollador de C# es crear y ejecutar su primer programa. Incluso un programa simple requiere que su máquina de desarrollo esté configurada correctamente y que conozca la sintaxis de C#. En este módulo, instalará Visual Studio, creará una aplicación de consola, escribirá código para realizar un cálculo y mostrará el resultado al usuario.

  • Conocer el papel de C# y Xamarin.
  • Configura y ejecuta tu primer programa.
  • Aprender los fundamentos de C#.

Enlaces útiles

Explorando por tu cuenta

Ramas condicionales y bucles [CSC102]

Los programas a menudo necesitan evaluar datos y tomar decisiones basadas en los valores que descubren. Este módulo cubre cómo leer la entrada, la rama o el bucle del usuario en función de los valores de entrada, y convertir los resultados en cadenas para su visualización.

  • Implementar una rama condicional.
  • Descubre y utiliza bucles en tu código.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Introducción a C# [CSC101].

Programación orientada a objetos [CSC103]

Hay muchas formas de organizar su código que llevan a los programas correctos. Uno de los desafíos de ser un desarrollador es evaluar estas diferentes opciones y elegir la que mejor se adapte a sus objetivos. Un enfoque popular se llama Programación Orientada a Objetos (OOP). Este módulo presenta los principios básicos de la programación orientada a objetos y le muestra cómo aplicarlos a su código C#.

  • Determinar clases y relaciones en un programa.
  • Crear una clase con campos para mantener el estado.
  • Usar enumeraciones para definir valores constantes.

Enlaces útiles

<! - ### Explorando por tu cuenta ->

Prerrequisitos recomendados: ramas y bucles [CSC102]

Agregando Comportamiento en nuestras Aplicaciones [CSC104]

Una clase de C# es un contenedor que agrupa datos y sus operaciones asociadas. Los datos normalmente se almacenan en campos con una construcción llamada propiedad que controla el acceso. Las operaciones se denominan métodos y proporcionan la lógica para realizar trabajos relacionados con la clase. Este módulo le muestra cómo definir e invocar propiedades y métodos. Al final del módulo, podrá escribir una clase que modela los datos y el comportamiento de un objeto del mundo real.

  • Crear una clase con métodos para proporcionar comportamiento.
  • Utilizar propiedades para ocultar nuestros campos.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Programación orientada a objetos [CSC103]

Construyendo una aplicación de consola [CSC105]

El módulo anterior introdujo las características principales de la programación con C#. Este módulo reunirá estas piezas individuales guiándole a través de la creación de una aplicación a mayor escala. Construirá una aplicación de consola que lee la entrada del usuario, convierte la entrada de una cadena a un tipo numérico, realiza un cálculo que incluye bifurcaciones y bucles, y muestra los resultados al usuario.

  • Definir un tipo personalizado usando una clase
  • Crear propiedades para controlar el acceso a los datos.
  • Repetir un bloque de código con un bucle.
  • Crear métodos para agregar comportamiento a las clases.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: agregar comportamiento a nuestras aplicaciones [CSC104]

Parámetros y constructores del método [CSC106]

Una parte clave del trabajo con métodos es enviar argumentos y obtener resultados. Este módulo le muestra cómo usar parámetros opcionales para agregar flexibilidad a las entradas de método y cómo usar parámetros de salida para devolver múltiples valores. Otro tema importante para cualquier lenguaje de programación es la inicialización de campos de datos. Cada vez que cree un nuevo objeto, debe pensar qué valores debe asignar a los campos para asegurarse de que el objeto esté listo para su uso. Este módulo cubre cómo usar métodos especiales llamados constructores para realizar esta inicialización.

  • Pasar información a métodos.
  • Recibir información de los métodos.
  • Inicializar objetos utilizando constructores.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Crear una aplicación de consola [CSC105]

Colecciones [CSC107]

Casi todos los programas tendrán una colección de datos. Por ejemplo, una aplicación de correo electrónico almacena una lista de sus contactos, un navegador web muestra los sitios web que ha visitado y un programa meteorológico muestra el pronóstico de sus ciudades favoritas. Para codificar esto, debe crear una colección almacenando sus valores dentro de una estructura de datos. Este módulo le muestra cómo utilizar tres de los tipos de colección más populares: matriz, Lista y Diccionario.

  • Utilizar matrices para cargar conjuntos de datos estáticos.
  • Utilizar listas y diccionarios para gestionar datos.

Enlaces útiles

Prerrequisitos recomendados: Parámetros y constructores del método [CSC106]

Depuración y excepciones [CSC108]

Incluso los programadores cuidadosos cometen errores. Pueden olvidarse de validar la entrada del usuario o dejar que un bucle continúe ejecutándose durante una iteración adicional después de que se haya detenido. Problemas como estos son tan comunes que encontrar y corregir errores se considera una habilidad de programación básica. Este módulo le muestra dos técnicas de depuración: usar un depurador para examinar el estado de su programa durante su ejecución y usar excepciones para escribir código que responda a problemas a medida que se ejecuta el programa.

  • Utilice el depurador para examinar el código de ejecución
  • Tirar y atrapar excepciones para responder a errores.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Colecciones [CSC107]

Herencia y polimorfismo [CSC109]

La programación informática implica crear un modelo de software de cosas que existen en el mundo real. Una relación importante del mundo real a menudo se describe como "is-a". Por ejemplo, un perro es un animal, un camión es un vehículo y un estudiante universitario es un estudiante. C# incluye una característica llamada herencia que le permite modelar la relación is-a en su código. Este módulo le muestra cómo usar la herencia para modelar los tipos en su mundo que están relacionados, aunque es-a. También presenta una idea relacionada llamada polimorfismo que ayuda a su código a manejar múltiples tipos de datos diferentes sin la necesidad de escribir un caso específico para cada uno.

  • Usar la herencia para eliminar el código repetido.
  • Usar métodos virtuales y polimorfismo para escribir código genérico.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: depuración y excepciones [CSC108]

Fundamentos de GC [CSC270]

La mayoría de los lenguajes de programación y tiempos de ejecución modernos incluyen la recolección de basura, ya que libera al desarrollador de parte de la carga de administrar la memoria. Desafortunadamente, no es completamente automático porque la forma en que escribe su código afecta el rendimiento del recolector de basura. Este módulo le muestra cómo ayudar al recolector de basura a hacer su trabajo de manera eficiente. Aplicará estrategias de codificación que pueden reducir la carga de trabajo del recolector de basura y utilizar las variables de entorno para ajustar el comportamiento del recolector de basura según la forma en que su aplicación usa la memoria.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Introducción a C# [CSC101]

Gestión de recursos sin memoria [CSC271]

Las aplicaciones a menudo necesitan trabajar con recursos como bases de datos locales, archivos y conexiones de red. El patrón de uso es similar en todos los casos: adquiera el recurso, utilícelo y luego libérelo cuando haya terminado. Liberar el recurso es complicado porque podría omitir accidentalmente el código de limpieza o podría no ser obvio cuando haya terminado si el mismo recurso se utiliza en muchas partes de su programa. Este módulo le muestra tres formas de hacer que la liberación de recursos sin memoria sea menos propensa a errores: IDisposable, Finalizers y SafeHandle.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Fundamentos de GC [CSC270]

Usando Async y Esperar [CSC350]

Las aplicaciones a menudo necesitan realizar operaciones de larga duración, como descargar datos de la nube o acceder al sistema de archivos local. Las bibliotecas que realizan este trabajo por usted generalmente ofrecen API asíncronas que permiten que su aplicación responda a las sugerencias de los usuarios mientras estas operaciones se ejecutan en segundo plano. Este módulo le muestra cómo usar async y esperar palabras clave para escribir este tipo de código asíncrono. También verá los detalles de la implementación subyacente y analizará algunas de las mejores prácticas a seguir al utilizar esta función de C#.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Fundamentos de GC [CSC270]

Escribiendo aplicaciones móviles multiproceso [CSC351]

Si una aplicación parece estar bloqueada, el usuario puede asumir que se ha bloqueado y reiniciar o incluso desinstalar la aplicación. La técnica principal para mantener su aplicación receptiva es delegar el trabajo a subprocesos en segundo plano para que el subproceso de la interfaz de usuario esté disponible para monitorear las acciones de los usuarios. Este módulo le muestra cómo usar las Tareas para mover el trabajo vinculado a la CPU en subprocesos en segundo plano. Verá cómo crear y administrar tareas, cómo manejar las excepciones y cómo respaldar la cancelación.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: usar Async y esperar [CSC350]

Introducción a la seguridad y sincronización de subprocesos [CSC352]

El código multiproceso puede aumentar el paralelismo y, por lo tanto, ayudar a que su aplicación se ejecute más rápido. Sin embargo, varios subprocesos requieren que usted administre su acceso a cualquier información compartida. Agregar la cantidad correcta de sincronización es complicado porque muy poco resulta en datos corruptos mientras que disminuye demasiado el paralelismo y ralentiza la aplicación. Este módulo comienza con una discusión exhaustiva de lo que hace que el código sea inseguro para que pueda identificar las partes de su aplicación que requieren sincronización. Luego le muestra cómo usar la clase Monitor y la palabra clave de bloqueo C# para sincronizar el acceso a los datos compartidos.

Enlaces útiles

Explorando por tu cuenta

Prerrequisitos recomendados: Escribir aplicaciones móviles multiproceso [CSC351]

Más sobre la sincronización [CSC353]

La gestión de varios subprocesos requiere un trabajo cuidadoso en dos áreas: la sincronización del acceso a los datos compartidos y la coordinación de la actividad de los subprocesos que trabajan juntos en una tarea común. Este módulo le muestra dos técnicas de sincronización: ReaderWriterLockSlim para permitir múltiples lecturas simultáneas y SemaphoreSlim para permitir el acceso completo por un número específico de subprocesos. El módulo también cubre tres patrones de coordinación: basado en eventos con ManualResetEventSlim, cuenta regresiva con CountdownEvent y cita con la clase Barrera. Finalmente, el módulo examina las colecciones seguras para subprocesos en el espacio de nombres System.Collections.Concurrent.

Enlaces útiles

Explorando por tu cuenta

Nota: Este módulo es una continuación de CSC352.

Consideraciones

Esta ruta de aprendizaje CSharp está en GitHub en un repositorio público donde todos pueden apoyarlo o darnos recomendaciones (los PRs son bienvenidos 😎). De la misma forma, el contenido se actualizará aquí.

De interés…

Recursos:

Muchas gracias por leer esta publicación! 
Ruta de aprendizaje CSharp: Ruta de aprendizaje Xamarin
5 (100%) 1 vote

Otros

feedback

Te invito a dejar tu opinión en la caja de comentarios. Si quieres que hable de un tema en específico o que detalle un poco más algunos temas, déjame saber. Los temas más interesantes serán agregados en mi lista de publicaciones futuras.

¿Te gustan las publicaciones como esta? Entonces, suscribete y activa las notificaciones push para recibir actualizaciones. Nos vemos en la próxima!

2018-12-06T02:54:37-04:00

Dejame tus comentarios

avatar
  Suscribirte  
Notificar de