¿Cómo aprender un nuevo lenguaje de programación?

Adentrarnos en un nuevo lenguaje de programación es un proceso que más de una vez va a pasarnos en nuestra carrera como programadores.

En mi historia he trabajado con más de 10 lenguajes de programación a lo largo de 20 años programando, y puedo decir que es ya un proceso común para mi aprender (o re-aprender) nuevos lenguajes de programación.

En mi experiencia puedo darte algunos consejos de cómo es que yo aprendo un nuevo lenguaje (no framework) de programación y es lo siguiente.

Fundamentos del lenguaje

Siempre, lo primero que hago es ir a ver los fundamentos del lenguaje, es decir, las cosas básicas del mismo, sin importar que tenga experiencia en otros lenguajes, es bueno no suponer, la suposición de creer que es igual una palabra reservada en un lenguaje que en otro es un error al cual no debemos caer (por ejemplo la palabra reservada var de javascript que es muy distinta a la misma palabra var en c# por ejemplo).

Los fundamentos van desde como declarar una variable, que paradigmas soporta el lenguaje (orientado a objetos, funcional, estructurado), como declarar una clase, si el lenguaje soporta interfaces o no, las cualidades únicas del lenguaje, las debilidades y ventajas del lenguaje son importantes también, pero sobre todo ir a este lenguaje nuevo como una persona que se adentrara sin suposiciones traídas de otros lenguajes de programación.

Documentación oficial

Para leer sobre los fundamentos, cuando aprendo un lenguaje de programación que tiene gran cantidad de apoyo, la documentación oficial siempre nos dará un camino sobre las cualidades de este.

La documentación oficial, sobre todo en inglés, ayuda dándonos lo correcto, lo oficial, y de primera mano la información correcta de cómo utilizar el lenguaje.

Antes de tomar un curso, te recomiendo ir a la documentación oficial.

Cursos

Una vez que se han leído los fundamentos, que se ha ido a la documentación oficial, ya podemos tener una base sólida para tomar un curso, ¿Por qué no antes? Pues porque necesitamos la base para poder tener un criterio del curso que tomaremos, hay cursos buenos y malos, pero para saber si estamos perdiendo el tiempo o no, necesitamos este criterio.

Los cursos son un complemento en el aprendizaje, pero es importante tener conocimiento por lo menos base antes de tomarlo, ya que algunos cursos podrían mal educarnos, o no darnos las bases que la documentación oficial ya a este punto nos habrá brindado.

Al tomar un curso ya sea de paga o gratuito hay que leer lo que comenta la gente, la ventaja de youtube es que podemos ir a los comentarios y leer sobre que va el curso, la ventaja en algunas plataformas de paga es que podemos ver lo que la gente dice del curso, es bueno antes de pagar saber si por lo que se va a pagar vale la pena.

Programar

Suena como algo obvio, pero lo he puesto ya que no se gana nada con solo leer, hay que darle al código, no hay buen corredor que sea buen corredor solo leyendo, hay que correr, hay que errar, hay que aprender de los errores, y un consejo es ir más allá del típico “Get Started” de la documentación, y puedes hacerlo vislumbrando algo que puedas hacer que sea utilizado por alguien, una aplicación básica que tenga la solución a algo básico.

Por ejemplo, si es un lenguaje para aplicaciones móviles, pues crear una app que resuelva alguna tarea de la vida diaria ya sea personal o de algún conocido, esto nos ira dando pautas de que ir investigando para ir solucionando las distintas partes de la aplicación. Esto ira forjando un camino orgánico de investigación, ya que tendrás un fin y objetivo por el cual puedes ir investigando, aprendiendo y sobre todo programando.

Comunidades

Las comunidades son parte esencial en el aprendizaje, ya que brindan un apoyo de compañerismo, apoyándonos en momento cuando caigamos en bugs endemoniados, o dudas sobre el lenguaje que estamos adentrándonos.

Por suerte, hoy en día las comunidades las podemos encontrar desde foro, hasta en slack, telegram o discord.

Es bueno involucrarnos con comunidades, ya que podemos tener varios puntos de vista extras, que nos podrán dar más objetividad a nuestro conocimiento.

Conclusión

Espero estos consejos te sirvan, y sobre todo, entender que para aprender un nuevo lenguaje de programación, se debe tener un propósito por el cual deseamos aprenderlo, ya sea laboral, ya sea por gusto, pero nunca que sea porque lo escuchamos como el lenguaje de moda, no caigamos en fanatismos.

Patrones de diseño en JavaScript

Los patrones de diseño son técnicas ya probadas que resuelven problemáticas en concreto.

Imagina que tienes soluciones que ya han sido utilizadas por muchos programadores, y estas soluciones fueron documentadas como soluciones comunes para un tipo de problemas comunes.

Aprender el porqué de los patrones de diseño te ayudara a poder tener una mente más organizada al momento de programar.

En esta entrada tienes videos de varios patrones de diseño explicados en JavaScript.

Tengo un curso completo de patrones de diseño en JavaScript y TypeScript

Curso de fundamentos de C# .Net

En este curso aprenderás las características fundamentales del lenguaje de programación C#.

En este curso aprenderás las características fundamentales del lenguaje de programación C#.

Al finalizar el curso aprenderás:

  • Variables y tipos de datos
  • Programación orientada a objetos: herencia, polimorfismo, control de acceso
  • Generics
  • Deserialización y serialización de objetos
  • Json
  • Conexión a base de datos
  • Interfaces en Programación orientada a objetos
  • Solicitudes a servicios web
  • Delegados
  • Excepciones
  • Creación, lectura y escritura de archivos

Tengo más contenido gratuito en mi canal aquí.

Si deseas profundizar en C#, tengo un curso premium dando clic aquí.

Curso de Python orientado a novatos

En este curso veras los fundamentos básicos de python, características que son necesarias para comenzar con este lenguaje de programación.

Aprenderás como hacer variables, listas, funciones, clases, programación funcional, conexiones a base de datos, y por ultimo haremos un Crud(crear, obtener, editar y eliminar).

El curso esta orientado a nivel novato o principiante.

Puedes ver más videos gratis en mi canal de youtube dando clic aquí.

Curso programando un sistema de venta real con: .Net Core, angular y Xamarin

En este curso haremos un sistema de venta real utilizando como tecnología de backend .Net Core y en el frontend Angular y Xamarin.

Me acercare lo más posible a lo que sería un sistema real, por lo cual veremos muchos temas como son:

  • Autentificación
  • Seguridad
  • Entity Framework
  • Cruds
  • Creación de servicios web
  • Aplicación de patrones de diseño
  • Diagramas de componentes
  • JWT
  • Directivas en angular
  • Servicios en angular
  • Observadores en angular
  • Y mucho más

El curso es publicado en mi canal de Youtube y para seguir el rastro te invito a que te suscribas dando clic aquí.

Preguntas y respuestas de programación #15 ¿Que son los microservicios?

Contestando preguntas y respuestas sobre programación.

  • ¿Qué son los microservicios?
  • ¿Cómo identificar que patrón de diseño se está utilizando?
  • ¿Cuál es la parte más difícil de trabajar en instituciones de gobierno?
  • ¿Cómo compartir la capa de negocio y de datos en aplicaciones de escritorio, web y apps?
  • ¿Cómo confirmar correo sin Identity?

¿Cómo trabajar Entity Framework con Mysql en Visual Studio 2019?

En este video te mostrare los pasos que debes seguir para poder trabajar con Entity Framework con Mysql en Visual Studio 2019.

Links de descargas:

¿Cómo crear un módulo Maestro Detalle en C# MVC .Net Framework?

En este video te explicare como hacer un formulario maestro detalle con la tecnologia MVC .Net Framework. Te enseñare desde como esta organizado MVC .Net, como insertar los datos a una base de datos con Entity Framework y como agregar elementos diatónicamente con javascript en tu formulario.

Descargar código fuente

Preguntas y respuestas de programación #14 ¿Arquitectura SaaS? ¿Monadas en C#?

Contestando preguntas y respuestas sobre programación.

  • ¿Arquitectura SaaS?
  • ¿Opinión sobre arquitectura DDD?
  • ¿Una base de datos para todos los cliente o una base de datos por cliente?
  • ¿Debe llevar backend siempre las aplicaciones en Xamarin?
  • ¿La maldición de las monadas en C#?
  • ¿Para que sirven los indices en las bases de datos?