Mostrando entradas con la etiqueta algoritmos. Mostrar todas las entradas
Mostrando entradas con la etiqueta algoritmos. Mostrar todas las entradas

sábado, 4 de enero de 2025

Las leyes (no escritas) de la programación (3ra parte)

Cuando empezamos en este mundo de la programación vamos sin rumbo definido, a ciegas muchas veces. No sabemos qué lenguaje de programación escoger, y por qué.

Nos dirán que Java es el mejor lenguaje. Otros dirán que mejor C#, Python o Javascript. Los más vetustos gritarán a los mil vientos que no hay mejor opción que C.

"En ese aprendes los tipos, las constantes, el control de flujo de un programa y las estructuras de datos. Anda, leé el libro de C".

Lenguajes como Fortran,Oberon, Modula, Lisp, Pascal, Smalltalk, Perl, etc. muy raras veces serán nombrados.

"Si quieres trabajar como programador, aprende COBOL".

"Si quieres trabajar como programador, aprende Java".

"Si quieres trabajar como programador, aprende PHP".

"Si quieres trabajar como programador, aprende Javascript".

El programador que ya trabaja como programador (sic) recordará esos consejos esbozando una sonrisa. Horas y horas practicando la programación en lenguajes que quizás ahora ya no usa. Es más, ya ni se acuerda de como hacer un "Hola, mundo". Consultando foros que ahora ya no existen o que están en desuso. Posteando preguntas en Stackoverflow, y quizás respondiendo algunas para probarse así mismo.

Encontrando tutoriales y libros PDF en sitios donde nadie más ha entrado. Libros de hace más de 5 o 10 años. Tutoriales que pueden o no estar completos.

Consultando Youtube para encontrar información valiosa que vale más que el oro. Frustrándose al tratar de replicar los programas que Hindues hacen en segundos. Tratándo de hallar el código del vídeo tutorial de Java de hace más de 5 o 6 años.

Al final, siempre volverá al principio de todo: a las bases de la programación.

"Si eres capaz de crear un buen algoritmo, entonces su conversión a cualquier lenguaje de programación será más sencillo".

Las bases, siempre fueron las bases. No aprender los 109181818 frameworks que abundan en el mundo de la programación.

"Si conoces las estructuras de control, siempre serás capaz de crear un orden lógico a tu programa".

"Si entiendes las estructuras de datos, te ahorrarás un montón de horas para ordenar tu información".

En conclusión, nunca olvidarse de las bases:

  1. El algoritmo antes que el programa.
  2. Estructuras de control. 
  3. Estructuras de datos.

Enlaces:

https://codemonkeyjunior.blogspot.com/2013/04/las-leyes-no-escritas-de-la-programacion.html

domingo, 29 de diciembre de 2024

Introduction to Algorithms (Curso en Inglés)

En está ocasión compartimos un curso gratuito sobre algoritmos.

Un algoritmo es una secuencia de pasos definidos para resolver un problema específico o para realizar una tarea particular. En informática son útiles para:

  • Crear programas computacionales que pueden ejecutar tareas complejas y repetitivas. 
  • Crear procesos que trabajen con grandes cantidades de datos. 
  • Optimizar tareas y mejorar rendimiento en sistemas. 
  • Etc.

Ejemplo. Crear un algoritmo en el que se solicita verificar si un archivo llamado "datos.dat" existe. Si no existe, indicar que el archivo no existe.

Algoritmo_Existe_Archivo

Inicio

    Definir ruta = "Fuentes/datos.dat"

    Si archivo_existe(ruta) entonces
        Abrir archivo(ruta)
    Sino
        Mostrar "El archivo datos.dat no existe en el directorio Fuentes."
    Fin Si

Fin

Características (ideales) que debe tener un algoritmo

  1. Debe ser claro, no ambiguo. 
  2. Finito, tener un número determinado de pasos. 
  3. Efectivo, debe funcionar, cada paso deber ser realizable con los recursos disponibles. 
  4. Tener una entrada, datos con que trabajar. 
  5. Tener al menos una salida, un resultado. 
  6. Determinista, para un conjunto dado de entradas, el algoritmo debe producir siempre el mismo resultado. 
  7. Cumplir con la Generalidad, debe ser lo suficientemente general para resolver no solo un caso específico, sino toda una clase de problemas similares. 
  8. Independiente del lenguaje, un algoritmo debería ser fácilmente implementado en cualquier lenguaje de programación. 
  9. Ser lo mínimo eficiente
  10. Debería ser modular, los algoritmos deben ser diseñados para ser modulares, permitiendo que partes del mismo puedan ser reutilizadas o combinadas con otros algoritmos para resolver problemas más complejos.

Puedes acceder al curso cobre algoritmos en el enlace.

¡Saludos!

Enlaces:

https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/lecture-notes

viernes, 2 de junio de 2023

Las Técnicas de Programación

En este vídeo (del canal https://www.youtube.com/@raulherreraflores) se habla sobre técnicas de diseño de algoritmos y programación.

viernes, 4 de julio de 2014

Una herramienta para aprender a programar: PSeInt

PSeInt
Se trata de una herramienta enfocada a la enseñanza y aprendizaje de programación, se emplea un lenguaje algorítmico muy sencillo de utilizar.  Lo puedes instalar en Linux, Windows, y Mac.

 Al inicio te pedirá que lenguaje algorítmico usarás (te muestra una lista). A mi parecer es bastante sencillo e intuitivo.  Ideal para quienes están o quieren aprender a programar.

Link
http://pseint.sourceforge.net/slide/pseint.html
http://pseint.sourceforge.net/

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog