The BIGGEST MISTAKE ALL Programmers make (but no one talks about)
HTML-код
- Опубликовано: 8 фев 2025
- In this video we will analyze the evil that threatens programming: over-engineering in software projects.
🍺 My PROGRAMMING Courses: metalcode.io
🍺 Laravel Course: courses.metalc...
🍺 Buy Laravel Course on Udemy: hdeleon.net/ba...
📚 My Books
📖 Learn to Program with C#: hdeleon.net/li...
🤖 My Setup
🖥️ My Monitor: amzn.to/3dtnDkk
⌨️ My Keyboard: amzn.to/3BtjKnq
⌨️ My Elgato Deck: amzn.to/3dvEKC3
🎧 My Earmuffs: amzn.to/3BwQYm0
🎤 My Microphone: amzn.to/3qPvFHh
If you want to support me and give me a beer, you can do it here: paypal.me/Hecto...
You can support me from 0.5 USD per month by joining the channel as a member here: / @hdeleonnet
🐦Twitter: / powerhdeleon
🌎My Website: hdeleon.net
📻Raw Radio on Spotify: open.spotify.c...
#programming #dev #programming
100% de acuerdo.. y lo peor es que hay programadores que presumen de su sobreingeniería..
Muchas personas piensan que la "experiencia" solo se centra en saber escribir código (y mientras más complejo, "mejor"). Lo mejor es hacer todo simple, no solo para ti, sino pensar en que en algún momento ese código lo puede ver alguien más que te agradecerá el que lo hayas hecho simple, directo y bien explicado. La verdadera experiencia está en saber como y cuando usar las tecnologías para evitar lo que dices, la "sobre ingeniería". Gracias por el vídeo Héctor
yo creo que se podría utilizar la sobre ingeniería en algo complejo como la IA, computadora cuántica o cuando debes de innovar algo que ya esta muy bien hecho
De hecho, el mejor maestro que he tenido, desde Udemy aprendiendo ya php y ejerciendolo ahorita a todo full desde 0 y al progreso de curva de aprendizaje, gracias profesor!!!!! chingoneria de canal tambien :3
El mejor canal de programación!
A mi una vez me paso, utilice mucha sobre ingeniería en un proyecto final de universidad estaba muy obsesionado con las buenas practicas arquitectura hexagonal SOLID y esas cosas cuando al final lo único que se trataba el proyecto era de hacer un sistema que venda joyas, con un login y un punto de ventas xd, al final no pude cumplir con todos los requisitos y me evaluaron con nota mínima decente. Pase igual pero me hubiese ahorrado trabajo y dolores de cabeza.
la idea es crear una idea lo mas fácil y entendible posible para el usuario o cliente, no hay que complicarse. Ademas si se quiere hacer algo complejo lleva procesos y puede tardar mucho tiempo y si no tenes compañeros que te ayuden a optimizar ese programa esta complicado.
Todos alguna vez aplicamos sobre ingeniería desde que vi esta canal pienso mas las cosas antes de empezar a codear. Hace años hice un monolito en node pero era difícil encontrar problemas porque la logica de negocios se base en varios procesos entonces la parti en lambda functions lo cual al tenerlo dividio es mas facil encontrar fallas pero ahora si se quiere cambiar alguna tecnología se complica el asunto. Ahora la duda es sera conveniente aplicar arquitectura a este tipo de servicios o sera sobre ingeniería ? Como siempre saludos guapo
Gracias, necesitaba este video. Estoy haciendo mi primer software completo por mi propia cuenta para agregarlo en el negocio familiar & si me estaba yendo a futuro y esto me puso los pies en la tierra
100% de acuerdo contigo Héctor. Como siempre muy crítico pero con mucho conocimiento de causa cuando hablas sobre algún tema o concepto. Por cierto, hay otro divulgador de contenido que también habla sobre esto, se llama ManzDev.
De hecho, muchos de los proyectos personales que tengo los postergo pq de solo plantearlo y ver la complejidad que tiene (no por el problema en sí, si no por complicarme de más) termino postergándolos. Si fuera mas realista es muy probable que ya los tuviera hechos
Ese problema ha retrasado mi proyecto personal muchos meses, en parte es porque tengo miedo de que a futuro no sea mantenible o fácil de leer y siempre le encuentro una manera de mejorar o acortar código, pero almenos ya voy asumiendo que primero el proyecto debe estar operativo para pensar en lo siguiente.
Hector, excelente video como siempre, pero yo creo que ese problema de la sobreingenieria es inevitable, solo con mucho experiencia uno se da cuenta de este tipo de error, cuando uno esta en el camino de aprendizaje lo veo como algo repito, inevitable. Es como ese cliche de "uno primero organiza el sistema de manera planificada, despues programa"...esto es cierto pero si ya tienes muchos años de experiencia! De lo contrario la unica manera de aprender es programando y fallando, no queda otra, si uno se queda con miedo y no mete las manos en la masa ya sabiendo que cometera fallas imposibles de evitar, pues jamás prosperarás como programador. La frustración y el dolor son algo que no puedes escapar si quieres ser buen programador, musico, deportista...
no se yo creo que eso se corrige o se debe mantener cuando uno recien esta empezando, obviamente que va a haber errores. A lo que voy es que cuando uno empieza a programar hace códigos limpios pero cuando ya quiere saltarse cosas o inventar cosas ahí uno se le va la mano y hace esos spaghetti innecesarios, uno debe empezar con cosas simple y no saltarse a inventar chorradas de un solo saque porque lo domina, sino mantener una linea y revisar los errores comunes que cometen un principiante como no documentar, no anotar lo que hacen una linea o bloque, etc. Hay tanta información en un libro o internet para no cometer errores.
Comprar Curso de Laravel: courses.metalcode.io/courses/laravel-backend
Comprar Curso de Laravel en Udemy: hdeleon.net/backendlaravel
Mi Libro de C#: hdeleon.net/libro-aprender-a-programar-con-c-hector-de-leon/
Mis Cursos de Programación: courses.metalcode.io/
Ahora si como me dijo un dia un profesor de ingeniería en sistemas, mas vale sentarte 8 horas o mas a planear la solución, que lamentar horas borrando funcionalidades o codigo innecesario, muchas gracias Héctor por el vídeo, un saludo
La mejor solución de software es aquella que no tienes que implementar. El mejor y más limpio código fuente es aquel que no tienes que escribir.
Un ejemplo: Se necesita que los usuarios mientras se registren queden distribuidos en grupos de similar cantidad pero distribuidos aleatoriamente. Digamos que hace falta crear 4 grupos de usuarios de ser posible del mismo tamaño.
Una solución junior es posible que sea usar una funcion random que te de el grupo de 1 a 4, ignorando que el random no garantiza el tamaño similar de grupos.
Solucion: Si cada usuario tiene o podemos ponerle un numero consecutivo, calcular el modulo digamos i % 4, nos dara siempre un resto entre 0 y 3 que perfectamente puede ser el grupo y asi los usuarios son agrupados en orden de llegada.
Donde esta la distribucion aleatoria? Pues en el azar de la vida: los usuarios llegan y se registran de manera inesperada y sin orden prestablecido.
He visto muchas veces que los desarrolladores aplican ciertas tecnologias solo por aprender el conocimiento y tener un extra curricularmente hablando
Yo suelo pecar de siempre querer aplicar la arquitectura hexagonal a todos los backend que hago, porque aparte de que es muy facil de implementar y se acopla muy bien a proyectos pequeños, es la que mejor conozco debido a que es la que se usa en mi trabajo, pero se que hay ocasiones donde me la hubiera podido ahorrar e implementar un Modelo Vista Controlador de toda la vida.
así como el ser humano se busca los problemas ellos solo, como lo odio. Todo debe ser simple y entendible.
Qué buen video! Gracias a este canal y, sobre todo, a usted. Está cambiando la manera de realizar software. Muchas gracias por esos lindos aportes a la comunidad. Es usted una gran persona a la que admiro mucho. Una vez más, gracias, jefe. ❤😊🤘🍺🤘🍺🤘🍺
Creo que todos pasamos por las etapas de
Comenzar haciendo sistemas spaguietis luego darse cuenta de que los patrones de diseño y la arquitectura es necesaria y querer implementarlo en todos lados cuando muchas veces no es necesario y al final llegas a la conclusion de que cuando mas simple mejor jaja (obviamente no volviedo al spagueti )
Excelentes consejos Hector, muchas gracias.
Si puede hacerse de una manera simple, viene bien 👍, pero sin olvidar de vez en cuando limpiar el código y trabajar en utilidades que nos simplifiquen la programación. ¡Cómo amo crear utilidades!
Gracias por el cupón! lo tuve que comprar por Udemy nada más, un saludo desde Chile
casi todos los programadores que leo y que conozco salen con esa mega jalada de que el proyecto "debe estar preparado" para millones de usuarios, y estan haciendo mamadas contables, o de facturacion, o de registro de cobros. Pero si les dices algo hasta se enojan porque "esdeque se debe crear una buena arquitectura desde el inicio" y casi todos a los 2 años ya quieren "re programar todo " porque "esdeque el paradigma ya cambio"
y por eso los van a reemplazar la IA
A veces no son solo los programadores, me tocó estar en un proyecto de una aplicación web en el que usaban patrones de diseño, la verdad es que había "demasiado código" para lo que realmente hacía la aplicación. Cuando entré en seguido me dieron unas historias de usuario que tenía que atender y cuando ví el código que estaba me costó varias semanas entender su lógica, los demás compañeros se creían dioses del olimpo y no explicaban nada solo por puro ego. Era de siempre quedarse más tiempo para avanzar, un ambiente demasiado tóxico, había bullying,etc.. Regresando al punto del código, era tan compleja su implementación de patrones de diseño que a veces solo para obtener un dato en una tabla en una base de datos hacía como 8 o 9 llamadas entre clases y en cada una logueandose una y otra vez, muchas de esas llamadas estaban ahí sin sentido alguno. El patrón que utilizaban era una mezcla entre MVC y la que le llaman "por capas", pero desde mi punto de vista mucho más complejo y confuso. La aplicación se tardaba demasiado en procesar una operación y al final decían que había que optimizar la base de datos, pero yo no podía "meter mano" a la base de datos. Al final como era para una aplicación de una institución de gobierno se implementó pero terminó por ir con otro cliente para otros proyectos. Por cierto a mi me despidieron en cuanto terminó el proyecto, por una parte mejor la verdad es que no les agradaba a mis demás compañeritos ni a la que era mi jefa. Como dato extra, antes de QA, tenías que pasar por otro filtro donde te revisaban tu código y te cuestionaban, si no les gustaba a pesar de que hacía lo que tenía que hacer, me retachaban y me decían que lo volviera a hacer pero sin darte como tal argumentos.
que ni siquiera tenia anotaciones para decir que hace cada linea o bloque?
yo solo lo haría por el dinero, ni me molesto si es algo del gobierno. Es mas algo que yo aprendi es actuar como tonto y tener los oídos sordos como si no escuchara, ignorando la falta de respeto o otras cosas. Le hubiera perjudicado mas el codigo si te tratan mal o roto los servidores , hay mucho egoísta que porque se hizo un cursito,fue a la universidad o aprendió algo nuevo cree que es mejor que los demás por un titulo o por saber algo que otros no,etc.
@ no
@ El bullying llegaba a tal grado que me llegaron a dar zapes, nunca respondí con violencia (si debí tal vez), pero si metí mi queja con RH, ni siquiera caso me hicieron. Igual si no me corrían yo pensaba renunciar, total solo estuve ahí lo que duró el proyecto. Fue como revivir regresar a la secundaria y soportar ese tipo de ambiente pero con "adultos". Y no, ni siquiera había documentación ni código comentado, todo lo tenías que consultar con el equipo y eso si tenían ganas de responder, y si respondían era la humillación antes. Una chulada para los que les gusta ese ambiente tóxico.
@@vhrt61 RRHH siempre está del lado de la empresa por más que hagas la queja te van a echar igual,para la próxima ya sabes,si hay violencia física y verbal pones una grabadora con tu celular o con lo que sea y haces una denuncia en una oficina que proteja al trabajador,no sé cómo se llamará en tu país pero debe haber una oficina exclusiva para denunciar a cualquier empresa o lugar de trabajo.
Jaja te rifaste con esa apertura!!! Muy buena!!! Tomé buen hombre su like 😂👍
me paso lo de crear una funcionalidad porque me parecia guapa y sufri un mes entero por haber perdido tiempo con eso y no haner revisado las cargas masivaa que tenia que hacer, desplegamos el proyecto y cuando queriamos subir el excel el servidor se caia, toco subir un pequeño excel como 200 veces, no teniamos acceso completo al servidor.
He metido patrones de diseño donde aparentemente no iban y me retrase con entregas... A la semana pidieron un cambio y lo tuvieron el mismo día así que ni tan mal
La arquitectura de software no se trata solo de diseñar sistemas complejos y escalables, sino también de saber cuándo una solución simple es suficiente. Es el arte de tomar decisiones equilibradas: elegir soluciones sencillas cuando el problema lo permite y optar por mayor complejidad solo cuando es estrictamente necesario.
Un buen arquitecto entiende que no siempre se trata de sobreoptimizar, sino de aplicar principios como KISS (Keep It Simple, Stupid) y YAGNI (You Aren't Gonna Need It). Sabe reconocer cuándo una solución es "suficientemente buena" y cuándo merece la pena invertir más tiempo en mejoras.
El equilibrio :v
Simplicidad vs. Escalabilidad,
Simplicidad vs. Flexibilidad,
Simplicidad vs. Rendimiento,
Simplicidad vs. Presupuesto,
yo solo le encuentro necesario sobre pensar cuando es algo que esta recontra mejorado y se necesita innovar o es algo muy complejo como una pc cuántica o IA
@@jonifalcon6939 umm siii ese punto tambien es válido, voy a agregarlo a mi conclusión XD
100% de acuerdo.
Lo peor es cuando llega un programador que le gusta lucirse metiendo librerías frameworks etc, solo para demostrar que las conoce cuando son totalmente innecesarias
Utilizar ORMs, tratar de usar clean code, reutilizar codigo, y escribir codigo de forma simple y entendible
Hector primero que nada gracias por el contenido que haces. Debe ser de las primeras veces que comento. Esta vez no estoy de acuerdo con vos. Creo que en una época y en un futuro donde el desarrollo está tan basado en la IA, los errores o experimentos con el código son la mejor escuela. Y qué mejor que hacerlo en proyectos que no lo necesiten?. Hoy Midu subió un video hablando de la baja en las visitas de StackOverflow, muy relacionado con el lanzamiento de ChatGPT. En este ecosistema donde cada vez el codigo está más influenciado por la IA, es necesario en mi opinión no buscar la perfección sino el entendimiento profundo y en ese camino no hay mejor escuela que el error. Un abrazo grande!
hasta una IA te hace el código simple, solo haría falta optimizar el código y ya
thx master!!! 🍻
Me interesa el curso de patrones de diseño en python pero apenas estoy aprendiendo POO en python. Ya por abril me inscribiré en el curso.
El curso tiene una introducción de programación orientada a objetos
100% de acuerdo. Lo peor es que si te opones a esos super cambios iluminados quedas como un dinosaurio o alguien obsoleto o no entusiasta.
A veces nadie se acuerda de las reglas de negocio, cómo documentar mejor?
estoy esperando el de python con patrones de diseño lo saque por udemy, pero bueno soñar no cuesta nada
Ese no va a salir en Udemy jaja
@@hdeleonnet jajaja con mas razon soñar no cuesta nada XD
Este es de los mejores canales de programación
De tantos lenguajes (C#, py, JS, dart ... ), hDeLeon decidió hablar con la verdad.
Saludos crack
Cierto
La capacidad de ver un código a futuro para poder escalarlo es un proceso que te llevará a través del espagueti, la sobre ingenieria y los patrones de diseño. Es necesario equivocarse allí pq solos asi aprenderás y ampliarás tu visión. P.D No soy IA😅
tanta info para no equivocarse. Aunque no lo dudo que ayuda, me parece mas lógico equivocarse con algo mas avanzado en algo que estas estudiando o programando sin ser un spaghetti.
Demasiado ego en el campo de la tecnología. La mayoría de Frontend sale con jquery xD
Es muy fácil, lo primero que hay que hacer es aprender a programar, si te pasas con los frameworks entonces ya no estás programando bien.
cuando uno empieza a programar es cuando empieza a hacer código simple y desde esa base debe salir uno, no empezar a inventar burradas o querer utilizar todo los libros de herramientas en un mismo código.
Aguante Megadeth!!!!
🤘
También el problema es que no se dejan crecer el cabello 😢😅
Tuve que besar muchos sapos para llegar con mi príncipe elegido.
Yo metiéndole mvc a todo lo que se mueva ,mejor va a querer una cervesita
¡¡Martillos de Oro!!! ¡¡Martillos de Oro Everywhere!!!
Ten tu manita arriba mañoso, te quiero absorbedor de cerveza
ya no? todavia ni acaba el mes y ya nos regañaste más veces que quincenas
Modelo de 40 capas
Sera que Sobreingenieria = burocracia?
termine en el mejor xD