Imagen de portada
Imagen de perfil
Seguir

Programación Desde Cero

Educación
0Seguidos
2Seguidores
Ayudame con un café

Dos soluciones en C# para detectar duplicados

A veces buscamos escribir código más compacto porque a simple vista parece “más elegante”, pero no siempre el algoritmo más breve es el más eficiente. Como programadores, es clave entender cómo funciona cada enfoque antes de elegir. Al elegir un algoritmo o implementación, considerá: Complejidad algorítmica (Big O): - Tiempo: ¿cuántas veces recorrerá la estructura de datos? - Espacio: ¿cuánta memoria extra necesita? Caso promedio y peor caso: - ¿Puede detenerse antes si encuentra la respuesta rápido? - ¿Siempre procesa toda la entrada? Legibilidad y mantenibilidad: - ¿El código es fácil de entender y mantener para otros programadores? 💻 Código ejecutable: https://paiza.io/projects/HQCKSl4qkAk97lpzMnGi-g 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/csharp/2025/07/02/csharp-hashset-dos-soluciones.html
Ver más

¿Por qué un QR dañado sigue funcionando?

El algoritmo Reed-Solomon usa la matemática para recuperar datos aunque falten partes, mediante operaciones con números especiales llamados “códigos” para detectar y corregir errores, tratando los datos como si fueran partes de un polinomio. Así puede reconstruir los valores que faltan. No solo es útil en los códigos QR: también se usa en CDs, DVDs, Blu-Ray, transmisiones espaciales, Ethernet y comunicación satelital. Al momento de la lectura, si faltan datos, se resuelve un sistema de ecuaciones polinómicas para reconstruirlos. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/06/28/qr-reed-solomon.html
Ver más

Tipos de datos: en detalle

Entender cómo se almacenan los datos nos ayuda a escribir código más eficiente (ahorrando memoria y CPU), debuggear errores raros (como overflows o accesos inválidos), trabajar con archivos binarios, redes o hardware (donde cada byte cuenta). Tal vez para los desarrolladores web es algo que no surge en el día a día. Pero será importante conocer sobre los detalles de la memoria cuando trabajes con: ✓ Sistemas embebidos (memoria limitada), ✓ Procesamiento de archivos binarios (imágenes, sonido), ✓ Optimización crítica (juegos, algoritmos pesados), ✓ Bugs raros (como buffer overflows o corrupción de datos). 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/conceptos/2025/06/26/tipos-de-datos.html
Ver más

POO - ¿cómo diseñarías estas clases?

En este ejercicio podríamos pensar diferentes formas de modelar las clases, que dependerán de cada caso y de la información que se necesite manejar de cada una. Pero siempre es importante tener algunos conceptos claros, para que el diseño sea lo más ordenado posible. Por ejemplo, el Viaje probablemente necesite saber qué auto lo realizó, y el Auto podría también conocer sus viajes, pero no es obligatorio si ya existe un gestor (Flota). También es interesante ver cómo se desarrolla el principio de responsabilidad única (“SRP” o “Single Responsibility Principle”) cuando entendemos que el Auto representa un vehículo y como tal no es responsable de registrar viajes. La Flota (o podría ser “la empresa”) es quien organiza y gestiona. Esto nos da también una baja dependencia entre objetos, porque el Auto no necesita saber quién lo gestiona ni qué hace con él. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/poo/2025/06/22/ejercicio-poo.html
Ver más

Django Rest Framework

Django REST Framework es una herramienta que permite crear el “backend” de una aplicación: la parte que se encarga de guardar, procesar y enviar datos. “DRF” funciona sobre Django en Python y se encarga de exponer datos a través de una API (normalmente en formato JSON). Se integra directamente con el ORM de Django, facilitando el trabajo con bases de datos y permite que esos datos puedan ser leídos, modificados, creados o eliminados desde otros sistemas (como un frontend hecho con React, una app móvil, u otro backend). 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/python/2025/05/11/drf.html
Ver más

Cómo practicar programación con proyectos reales

Poder leer y modificar código ajeno es importantísimo para un desarrollador, entonces ¿por qué no usar proyectos de código abierto practicar? Nadie necesita ver tu versión: podés usarlo como un laboratorio personal. Tampoco es necesario hacer grandes cambios: poder hacer correr el código, cambiar un color o mensaje o agregar una nueva validación son buenos ejercicios. Un proyecto interesante es "Conduit" (https://codebase.show/projects/realworld), una aplicación que imita a Medium.com en distintas versiones, desarrolladas con múltiples lenguajes y frameworks. Acá puede verse su documentación: https://realworld-docs.netlify.app/introduction/. También podríamos encontrar algún repositorio interesante en la lista "Awesome First Pull Request Opportunities" (https://github.com/MunGell/awesome-for-beginners) que, aunque apunta más a quienes buscan contribuir con su código a un proyecto (es decir, enviar el código para que forme parte del repositorio), los que se listan ahí suelen ser proyectos bien organizados y con buena documentación para poder entenderlos. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/05/05/practicar-con-open-source.html
Ver más