Análisis del Plan de Estudios de Ingeniería en Computación de Carrera Universitaria

En este video realizo un análisis del plan de estudios de la Universidad de Guadalajara

En este video realizo un análisis del plan de estudios de la Universidad de Guadalajara.

El objetivo es identificar materias que son clave para mejorar como profesional en tecnología, y también para que personas que no pueden o quieren ir a la Universidad puedan identificarlas y aprender más sobre ellas.

¿Cuánto COBRAR por una APLICACIÓN?

En el siguiente video te muestro una forma de estimar un proyecto.

En el siguiente video te muestro una forma de estimar un proyecto.

Existen muchas formas, y creo personalmente que no hay una unica forma de hacerlo, o la mejor forma de hacerlo.

Pero lo que si creo es que uno puede ir midiendo conforme a su experiencia y mejorando poco a poco la manera como estimamos el costo y tiempo de un proyecto.

Charlas con invitados

En esta entrada anexare un listado de videos de los invitados que han venido al canal a platicar sobre temas relacionados a la Programación.

En esta entrada anexare un listado de videos de los invitados que han venido al canal a platicar sobre temas relacionados a la Programación.

¿Es el FrontEnd más Complicado que el BackEnd?
Prev 1 of 2 Next
Prev 1 of 2 Next

Top 10 Hdeleon.net 2021

En esta entrada anexare los 10 videos lanzados en 2021 que tuvieron mayores vistas.

Los videos están ordenados del numero 10 al numero 1.

10. ¿Qué diablos es Task en C# .Net? Programación asíncrona

9. Diferencias entre .Net Framework y .Net Core | Invitado Felipe Gavilán de @gavilanch2

8. ¿Por qué Migrar como PROGRAMADOR a Nueva Zelanda? | Invitado Nicolás Schürmann de @HolaMundo

7. Visual Studio 2022 nuevas características: Hot Reload, IntelliSense mejorado, .Net 6

6. Expresiones lambda en un ejemplo real en C# .Net, programando sin utilizar if

5. 10 ERRORES Comunes al PROGRAMAR en C# .Net

4. Minimal APIs, La NUEVA FORMA de hacer APIs en .NET 6

3. ¿Cuánto COBRAR por una APLICACIÓN?

2. Expresiones Lambda en C# .Net

1. ¿Vale la pena Programar en Java?

Principios SOLID

Principios SOLID son 5 principios los cuales tienen como objetivo hacer software mas apto a mantenimiento y cambios de requerimiento.

Los principios SOLID son 5 principios los cuales tienen como objetivo hacer software mas apto a mantenimiento y cambios de requerimiento.

Estos principios son base en el conocimiento de todo programador que trabaje con lenguajes con paradigma Orientado a Objetos.

He grabado 5 videos explicando a detalle cada principio, tanto con explicación teórica como explicación practica con código.

Tengo un curso de Patrones de diseño en Udemy el cual puedes adquirir en este enlace: https://www.udemy.com/course/aprender-patrones-de-disenos-aplicados-en-asp-net/?referralCode=11528C0122AD145CE970

Principios SOLID: El Principio de Responsabilidad Única SRP
Prev 1 of 1 Next
Prev 1 of 1 Next
https://www.udemy.com/course/aprender-patrones-de-disenos-aplicados-en-asp-net/?referralCode=11528C0122AD145CE970

Consejos para comenzar con un canal de youtube orientado a la Programación.

Escribo este post según mi experiencia de algunos años subiendo contenido persistentemente a youtube, contenido de programación.

Escribo este post según mi experiencia de algunos años subiendo contenido persistentemente a youtube, contenido de programación.

Cabe resaltar que no es lo mismo subir contenido de programación a contenido de otra índole, ya que por sí sola la temática de programación va dirigida a un público en particular, una desventaja siendo youtube un canal al cual puede acceder cualquier persona, desde este punto, ya llevamos una desventaja la cual nuestro contenido será solo visto por personas que tengan el interés de programación.

Lo primero que hay que hacer para comenzar es analizar si seremos constantes y pacientes, la constancia es beneficiada por youtube, el subir un video siempre en un rango de fecha fija es lo más óptimo, lo que he notado como parámetro es subir uno o dos videos semanales, ese es el rango que encuentro óptimo, cada video separado por 2 días mínimo, ya que si son lanzados 2 videos simultáneos, es probable que el segundo video opaque al primero, y el primero ya no sea visto.

El segundo consejo que voy a decirte es que para llevar un canal y sea notado por los demás, debe haber un factor que te diferencie de los demás canales, la originalidad no solo es premiada por youtube, sino por el público, sobre todo, las personas podrían seguir tu contenido porque eres distinto a todo lo demás, la originalidad creo que surge al ser solo uno mismo, sin copiar a alguien o a los demás, vaya, que sirve analizar otros canales y ver que va funcionando, pero solo tomar la influencia, mas no la copia, ser original importa bastante.

Ahora hablemos de la motivación. Muchos comienzan un canal por el dinero que se puede ganar al monetizarlo, y si vas por este camino, pues te voy a decir desde un inicio que no esperes ganar mucho, se gana algo sí, pero no lo suficiente como para vivir de youtube. Que hay personas que viven de youtube, pero el número es mínimo, es un pequeño porcentaje de canales que los ingresos que obtienen solo por youtube son suficiente para vivir bien, el punto al final que he analizado es que youtube solo es un medio para llevar algún otro servicio o producto a un público, es decir, puedes crecer en youtube, puedes ganar algo de dinero claro, pero debes tener un objetivo fuera del quiero ganar solo con youtube, cualquiera que sea tu objetivo, deberías evitar que el principal sea el ganar dinero solo con youtube.

El siguiente consejo es lo que se necesita para grabar. Regularmente puedes iniciar solo mostrando tu pantalla con los ejercicios de programación que desees mostrar, para esto puedes instalar un software de grabación como camtasia o xsplit (este último tiene su versión gratuita). Lo que veo como importante es el micrófono, el micrófono antes que la cámara. ¡Vaya! Que puedes comenzar a grabar con el micrófono de la laptop, claro que si, pero si puedes hacerte de un micrófono de gama media será mejor, ya que al final las personas que ven contenido de programación, van más por una buena grabación de código con calidad de audio, la cámara yo la pondría en un segundo plano junto con tu setup a mostrar.

Ahora hablemos sobre como vencer el miedo de que alguien te vea, es algo que siempre va estar ahí, y se va a esfumar al momento que hagamos más videos. También va ser normal que no caigamos bien a todos, y recibamos comentarios “hater”, pero hay cosas que no podemos evitar, pero si ignorar. El consejo es, si hay comentarios que te molestan, bloquea al usuario del canal, créeme, él no se va a dar cuenta que está bloqueado, y va seguir escribiendo, con la ventaja para ti de que nadie podrá ver sus mensajes, solo él.

Agrego este párrafo para detallar un punto que es importante, y es la seguridad de tu cuenta. La cuenta que tenemos para nuestro canal puede ser robada por distintos medios y yo aqui te sugiero que tengas varias cuentas ligadas al canal por si llegas a perder una cuenta por robo o por descuidado puedas recuperar tu canal.

También te recomiendo hacerte de unas llaves yubico con las cuales puedes añadir un extra a la seguridad de 2 pasos, ya que a mi me robaron mi cuenta en el pasado y el haber tenido llaves de seguridad pudo haberme ahorrado horas en recuperar mi cuenta. Te sugiero que adquieras 2 llaves ya que podrías perder 1 y no queremos complicar las cosas.

Puedes ver a detalle lo que paso con mi cuenta aquí.

Por ultimo te mencionare algo que aprendí con el tiempo, un canal de programación debe tener una etiqueta, es decir, la programación es amplia, y tu mismo veras canales que se dedican a frontend, backend, o a alguno framework como angular, react etc. A lo que me refiero es que si te enfocas a un tipo de contenido, ya sea frontend, backend, angular, react, .net, java, esto te ayudara al inicio. Posteriormente puedes tomar otros rumbos sin problema, pero a un inicio sirve mucho hacer contenido sobre una línea en particular.

Si estas por comenzar tu canal de programación, espero te sirvan estos consejos.

Mi canal de youtube aquí.

Mis cursos de Programación aquí.

Reto #100DaysAsAFrontendDev un reto inspirado en #100DaysOfCode

Este reto es algo que comenzó como sarcasmo y se transformo en real, sobre todo que podemos hacer algo distinto en cuanto a la enseñanza de los conceptos que debería aprender un desarrollador frontend.

Mi nombres es Héctor de León, un programador más afín al backend, y el reto me llevara a salir de mi zona de confort en cuanto a desarrollo y a su vez enseñar con el conocimiento adquirido.

En esta entrada de este blog iré recopilando todo el camino que iré siguiendo y en mi cuenta de Twitter iré escribiendo todos los días lo aprendido por 100 días con el hashtag #100DaysAsAFrontendDev.

A su vez en mi canal de youtube iré lanzando un video semanal orientado al frontend donde resumiré lo que he aprendido en un video que espero igual, el video explique a las personas que lo vean algunos conceptos del frontend.

Podrás ir viendo el código utilizado en este repositorio: https://github.com/powerhdeleon/100DaysAsAFrontendDev

El reto de 100 días ha finalizado y puedes ver todo el roadmap y videos aquí abajo

Reto #100DaysAsAFrontendDev un reto inspirado en #100DaysOfCode
Prev 1 of 2 Next
Prev 1 of 2 Next

10 Cosas que te servirán para encontrar trabajo como Programador .Net Jr

En esta entrada te recomendare 10 conocimientos que te harán la tarea de encontrar trabajo como programador .Net más fácil.

En esta entrada te recomendare 10 conocimientos que te harán la tarea de encontrar trabajo como programador .Net más fácil.

1.- Fundamentos de C#

Los fundamentos de C# son obligatorios, conocer las palabras reservadas más utilizadas, las sentencias, los bucles y tipos de datos te ayudara a tener un buen manejo de la tecnología.

Puedes tomar un curso completo gratis de fundamentos de C# aquí.

2.- Programación Orientada a Objetos

La programación orientada a objetos esta presente en la mayoría de lenguajes de programación más utilizados, y es obligatorio conocerla.

El comprender el concepto de clase y objetos, así como herencia, polimorfismo y encapsulamiento te ayudara a entender como se comportan las bibliotecas o frameworks que vas a utilizar comúnmente.

Puedes tomar un curso de Programación Orientada a Objetos gratuito aquí.

3.- Interfaces

Las interfaces son la base de los patrones de diseño, te ayudaran a tener mayor abstracción en la creación, estructura y comportamiento de tus clases.

Una interface te obligara a cumplir con reglas, como si de un contrato se tratara, esto optimizara el modo como programas pudiendo categorizar tus clases para que puedan tener un comportamiento bien planteado.

Si quieres ver una explicación de interfaces da clic aquí

4.- Entity Framework

El ORM oficial de .Net, con él te podras conectar a una base de datos y realizar consultas bajo el paradigma Orientado a Objetos.

Con este ORM podrás utilizar objetos y métodos para hacer los cambios en la información guardada en tu base de datos.

Entity Framework puede trabajarse como Database first que es cuando ya tiene tu base de datos existente y la mapeas en clases y objetos o también puedes trabajar con Code first que es lo recomendado cuando la base de datos aun no existe.

Puedes dar un vistazo a Entity Framework aquí.

5.- LINQ

La extensión declarativa para manejo de colecciones de C#.

El conocer LINQ te ayudara a manejar fácilmente información ya sea en base de datos o ya sean arreglos, tareas de todos los días.

Puedes ver un video de LINQ para novatos aquí

6.- Delegados

Los delegados son la representación de referencias de que es lo que recibe un conjunto de métodos, y que es lo que regresarán.

Esto nos permitirá utilizar funciones de orden superior que recibirán parámetros de funciones de primer orden tipadas, dándonos seguridad de que no recibiremos una función de distinto tipo a lo esperado.

En este video explico a detalle los delegados.

7.- Generics

Con los Generics podrás reutilizar código de clases y métodos con distintos tipos de datos.

Imagina que tienes que hacer el envió de información a un servicio por solicitud HTTP, el proceso siempre será el mismo, lo único que cambia es la información enviada, con Generics podrías hacer un método que funcione igual pero reciba el tipo de dato a utilizar y con esto no tendrás que hacer un método para cada tipo de información que debas enviar.

Si quieres ver Generics en acción da clic aquí.

8.- MVC

El Patrón Aruitectonico MVC es la base del framework ASP el cual es muy probable vayas a utilizar.

Comprender la M de modelo como una clase que tiene atributos y solo eso, la V de vista que representará la información en contenido HTML dinámico y la C de Controlador como un receptor de solicitudes que decidirá como tratar la información recibida y regresar una vista es base para trabajar en desarrollo web en .Net.

Te proporciono un video donde explico a detalle estas entidades con código.

9.- Inyección de dependencia

Los patrones de diseño son tecnicas que resuelven problemas en especifico, estas soluciones hacen que no reinventemos la rueda.

El patrón de diseño Inyección de dependencia es de los más utilizados, sobre todo por los frameworks, y es seguro que al trabajar en ASP .Net vas a tener que hacer uso de él.

La Inyección de dependencia le quita la responsabilidad de creación de un objeto a una clase, haciendo que esta lo reciba inyectado (enviado como parametro), ya sea en su constructor o en un metodo.

Asp .Net Core/ .Net5 tiene su propio mecanismo de inyección de dependencia por lo cual es importante conozcas de que va este patrón de diseño.

Aquí puedes ver el patrón de diseño Inyección de dependencia explicado en C#

10.- Asincronía

La asíncronia te servira para no detener tu secuencia principal de código cuando necesites realizar una tarea tardada.

Regularmente vas a tener que hacer consultas a la base de datos, a un servicio tercero o algun hardware y esto va a tardar sus propios segundos, con la asíncronia podras eguir haciendo otras cosas mientras el proceso que es tardado trabaja por su cuenta.

En este video te explico el proceso de asincronía con código en C#

Conclusión

Espero tomes en cuenta estas 10 cosas, y espero te sirvan en la búsqueda de tu primer trabajo como programador de C# .Net

Charlas de Programación como invitado

En esta entrada agrupare todas las charlas que he dado de programación en canales de youtube donde se me ha invitado.

Comprendiendo el Patrón de Diseño Observador con Aplicaciones en Tiempo Real con SignalR
Prev 1 of 3 Next
Prev 1 of 3 Next

Siempre hay varias maneras de programar una solución

En el área de la programación nos encontramos con un problema al cual hay que encontrarle una solución por medio de los algoritmos representados con código.

En el área de la programación nos encontramos con un problema al cual hay que encontrarle una solución por medio de los algoritmos representados con código.

Pero no solo en esta parte radica hacer la solución, también nos encontramos en armar una arquitectura, un diseño de base de datos, o un balance de componentes de tecnologías distintas que convivan entre si y juntos sean la solución.

El entender que el realizar un software de una manera la cual funcione bien, es decir, que cumpla su trabajo, dando la solución y esta solución sea segura, balanceada, escalar y todas esas características de calidad, implica que es una de las tantas maneras de haber creado la solución, más no es ni la mejor, ni la peor, pero si una de tantas.

A inicios del siglo 20 por allá de 1900 se reunieron un grupo de matemáticos, una asamblea donde a uno de estos matemáticos llamado David Hilbert, se le ocurrió plantear algunos problemas a resolver (desde entonces nos gustaba complicarnos), uno de esos problemas es el llamado Entscheidungsproblem (problema de decisión) el cual propone lo siguiente:

¿Existe un algoritmo el cual pueda decirnos si un cálculo de primer orden es un teorema valido?

En palabras más simples, existe un algoritmo que pueda decirnos si un enunciado lógico es demostrable.

Es aquí un punto crítico en la historia de la computación, ya que gracias a este problema alguien llamado Alan Turing y alguien llamado Alonzo Church demostraron que era imposible tal algoritmo pero también demostraron que en la computación se puede encontrar una solución de distintas formas.

Alan Turing creo la máquina de Turing la base de la programación imperativa y por su parte Alonzo Church creo el cálculo lambda la base de la programación declarativa.

La programación imperativa se ha convertido en la base de paradigmas de programación como la programación Orientada a Objetos, en cambio, la programación declarativa lo vemos en paradigmas funcional o lógico (prolog), de hecho, hoy en día el combinar los paradigmas es el pan de cada día.

Al final, nosotros creamos algoritmos que darán con la solución a un problema, pero siempre hay formas distintas de hacerlo, con menor o mayor abstracción, con menos líneas o más líneas de código, como sea, siempre habrá maneras distintas de tener una solución.

El objetivo de este texto es entender que si estamos programando y no damos con la solución, es bueno comenzar de nuevo esa parte y pensar cómo se haría de una manera distinta, no cerrarnos al primer camino en el cual nos quedamos atorados, sino entender que siempre hay otra forma de hacerlo.

Esto aplica tanto para programar, para diseñar una base de datos, para la arquitectura de software, bueno, aplica para toda etapa en el desarrollo de sistemas.

Si has llegado hasta aquí te agradezco, puedes compartir el texto si ha sido de tu agrado.