Cafecito
Imagen de portada
Imagen de perfil

Programación Desde Cero

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

Ejercicio de complejidad algorítmica (resuelto)

Ejercicio de complejidad algorítmica (resuelto)
Sabemos que, para un mismo problema, pueden existir varias soluciones. ¡Pero hay soluciones más eficientes que otras! Acá vemos un ejemplo (escrito en lenguaje Python, pero el ejemplo es válido para otros lenguajes).

Medimos el tiempo de ejecución de ambos algoritmos:
👉 Python: https://jdoodle.com/a/52bm
👉 C++: https://jdoodle.com/a/52ca

Si bien en arreglos pequeños el tiempo no parece variar demasiado, para el caso de una gran cantidad de elementos (¿miles, cientos de miles, millones?) la diferencia sería muy notable.

📜 Resumen sobre complejidad algorítmica: http://patriciaemiguel.com/conceptos/2019/09/04/complejidad-algoritmica.html


📜 Ver esta publicación en el blog: http://patriciaemiguel.com/ejercicios/2022/08/21/ejercicio-complejidad.html
Ver más

Contar ocurrencias con collections.Counter() en Python

Contar ocurrencias con collections.Counter() en Python
Ver más

Web scraping

Web scraping
Si tuviéramos que extraer grandes cantidades de datos de algún sitio web, lo mejor sería saber crear nuestra propia herramienta de "web scraping". Es un concepto interesante porque comparte varias de las técnicas con la automatización de pruebas que hace un QA "automator".
Algunos de los frameworks y bibliotecas más conocidos se utilizan sobre Python, aunque también pueden usarse otros lenguajes. Y luego del "scraping" viene una segunda etapa, que es la de procesar y analizar los datos recolectados, pero eso queda para otra publicación 😉.
Ver más

Términos "Spanglish" en el ámbito profesional

Términos "Spanglish" en el ámbito profesional
En cuanto empezamos a formar parte de un equipo de desarrollo -ya sea como desarrolladores, QA o en otro rol- es muy probable que escuchemos con bastante frecuencia palabras como estas (y varias otras), con raíz en el inglés y llevadas al español. Algunas no tienen traducción exacta y otras sí, pero de todas formas es normal escuchar este tipo de términos porque es común que en muchos proyectos se trabaje en inglés.
Ver más

Hackers de sombrero negro, blanco y gris

Hackers de sombrero negro, blanco y gris
Estos son los tres principales tipos de “hackers” que existen, aunque algunos distinguen más categorías. Lo que sí me queda claro es que los tres saben mucho de informática, especialmente de redes, sistemas operativos (los de la familia UNIX, principalmente), programación, criptografía, bases de datos, razonamiento lógico y resolución de problemas. 🕵️‍♀️

Hackers: sombrero negro, blanco o gris

Estos son los tres principales tipos de "hackers" que existen, aunque algunos distinguen más categorías. Lo que sí me queda claro es que los tres saben mucho de informática, especialmente de redes, sistemas operativos (los de la familia UNIX, principalmente), programación, criptografía, bases de datos, razonamiento lógico y resolución de problemas. 🕵️‍♀️


#hacking #seguridadinformática #seguridadinformatica #hackers
Ver más

APIs REST vs. SOAP

APIs REST vs. SOAP
Sé que he estado un tiempo sin publicar pero no quería despedir el año sin compartirles algún nuevo material 😊.

Aquí, un pequeño resumen sobre APIs REST y SOAP. Estas no son las únicas formas de construir una API, pero sí dos de las más populares. Aunque REST sea la que ha ganado más terreno, existen aún muchas APIs SOAP.

Desafío Java número 5 (solución)

Desafío Java número 5 (solución)
✅ La respuesta correcta es la c: Se produce un error de compilación porque la variable x está declarada dentro de un bloque (formado por las llaves) y no es accesible fuera de él.

✏️ Explicación: la variable x se encuentra declarada en un bloque definido por las llaves de las líneas 4 y 6 del código. Fuera de ese bloque, la variable no existe.
Varias personas han preguntado si las llaves estaban incorrectamente colocadas, y no es así. El error se produce por un problema de alcance de la variable cuando se intenta acceder a ella desde un ámbito mayor al bloque que la contiene. Aunque este es un fragmento de código de ejemplo y es verdad que ese bloque no tiene sentido ahí, de todas formas el bloque formado por las llaves es válido.
En Java, las llaves crean un bloque de código con su propio ámbito y no es necesario que ese bloque forme parte de un if, for, while, etc.
🤔 ¿Y qué pasa con el for de la línea 7? ¿Por qué no tiene llaves? La respuesta a esto es válida para varios lenguajes, no solo Java: las llaves solo son necesarias cuando el bloque incluye más de una instrucción. Si ponemos llaves en un bloque que solo contiene una instrucción, esas llaves son opcionales. En este caso, el bloque de código dentro del for tiene solo una instrucción y entonces no es obligatorio que tenga llaves.

💻 Código ejecutable: https://jdoodle.com/a/3puW
Ver más