Algoritmo

Un algoritmo es un conjunto ordenado y finito de operaciones con el objetivo de realizar una actividad de pasos definidos y así encontrar una solución a cualquier problema la gran mayoría de veces (para mayor información puedes seguir este enlace).

// Algoritmo para contribuir en un proyecto de código abierto

1. Realizar un fork al repositorio.
2. Clonar el repositorio.
3. Crear una rama.
4. Realizar cambios y confirmarlos.
5. Enviar los cambios a GitHub.
6. Crear un pull request.
7. Sincronizar la rama maestra con la del repositorio original.
8. Eliminar ramas innecesarias.

Pseudocódigo

Es una descripción de alto nivel (capacidad cognitiva humana) de un algoritmo. El pseudocódigo facilita a las personas entender un algoritmo.

En general, es comprensible y estructurado para que su implementación se pueda hacer directamente a partir de él.

Ejemplo:

// Pseudocódigo para calcular la suma de dos números

INICIO

    ENTERO x, y, resultado

    ESCRIBIR ("Ingresar el primer número: ")
    LEER (x)
    ESCRIBIR ("Ingresar el segundo número: ")
    LEER (y)

    resultado <- x + y

    ESCRIBIR ("Resultado: ", resultado)

FIN

Diagrama de flujo

Un diagrama de flujo es la representación gráfica de la secuencia de pasos que se realizan para obtener cierto resultado (representar algoritmos gráficamente).

graph LR; inicio[La lámpara no funciona]-->decision_a{Enchufada?}; decision_a{Enchufada?}--si-->decision_b[Está quemada?]; decision_a{Enchufada?}--no-->a_si[Enchufar la lámpara]; decision_b{Quemada?}--si-->b_si[Cambiar la ampolleta]; decision_b{Quemada?}--no-->fin[Comprar nueva lámpara];

Comentarios

Un comentario es una instrucción no ejecutable, un texto que se usa como ayuda para detallar información relevante y tiene por finalidad hacer más comprensible el código.

En Python, los comentarios inician con # seguido de un espacio en blanco.

# Comentario de una línea

Para bloques de comentarios ademas se respeta el nivel de indentación.

# Comentario
# de varias
# líneas

NOTA: El uso de comillas simples (') o comillas dobles (") se limitan a cadenas multilínea y docstrings (cadenas de documentación prefiriendo comillas dobles).

Indentación

En Python la indentación (sangrado) 1 es obligatoria ya que de ella dependerá su estructura. Una indentación de 4 espacios en blanco indicará que las instrucciones indentadas forman parte de una mismo bloque de código.

Ejemplo:

def main():
    print("Hola Mundo")

if __name__ == "__main__":
    main()

A pesar que la indentación puede realizarse mediante tabuladores, PEP8 2 recomienda el uso de espacios como método de indentación.

NOTA: Un artículo publicado por Stack Overflow en el 2017 relaciona el salario de los desarrolladores de software frente al uso de tabuladores o espacios (ir al artículo)

Tokens

Se denomina tokens a los componentes léxicos de un lenguaje de programación. Los tipos de tokens son: identificadores, palabras clave, operadores, delimitadores y literales.

Identificador

Un identificador es el nombre empleado para identificar a una variable, función, clase, módulo u otro objeto (en el caso de Python todo es un objeto).

  • Los identificadores empiezan con una letra (A-Z, a-z) o con guión bajo (_), seguido de más letras, guiones bajos o dígitos.
  • Las máyusculas y minúsculas son distintivas.
  • Los caracteres de puntuación como @, $ y ! no están permitidos como identificadores.

IMPORTANTE: La guía de estilo de Python, conocida como PEP8 2, contiene las convenciones de nomemclatura que enumeran estándares sugeridos para nombres de diferente tipos de objetos. PEP8 incluye las siguientes recomendaciones:

  • snake_case debe ser usado para nombrar funciones y variables.
  • CamelCase debe ser usado para classes.

Palabras clave

Es un conjunto de palabras claves (reservadas) de uso exclusivo del lenguaje, por lo tanto en Python, las siguientes palabras no deben ser utilizadas como identificadores:

False   None    True    and       as        assert  async
await   break   class   continue  def       del     elif
else    except  finally for       from      global  if
import  in      is      lambda    nonlocal  not     or
pass    raise   return  try       while     with    yield

TIP: Se puede ver la lista de palabras reservadas tipeando lo siguiente en el interprete de Python:

>>> help("keywords")

Operadores

Python utiliza caracteres no alfanuméricos y una combinación de caracteres como operadores. Se reconocen los siguientes operadores:

+ - * /  % ** // << >> & | ^ ~ < <= > >= <>  != ==

Delimitadores

Python utiliza los siguientes símbolos y combinación de símbolos como delimitadores en expresiones, listas, diccionarios, etc:

( ) [ ] { ,  : . ` =  ; += -= *= /= //=  %= &= |= ^= >>= <<= **=

Los siguientes caracteres tiene un especial significado como parte de otros símbolos:

' " # \

Los caracteres $ y ? junto con los caracteres de control solo pueden estar presentes en comentarios o cadenas de texto.

El uso de @ esta limitado en algunas versiones.

Literales

Un literal es un número o una cadena de texto.

Paradigma de Programación

Un paradigma de programación es una modelo, estilo de como desarrollar programas para resolver problemas.

También se denominan paradigmas de programación a las formas de clasificar los lenguajes de programación en función a sus características 3.

Los paradigmas de programación comunes incluye:

  • Imperativo: en el que le programador instruye a la máquina cómo cambiar su estado (estructurada, procedimental, modular, orientado a objetos).
  • Declarativo: en el que el programador simplemente declara las propiedades del resultado deseado, pero no cómo calcularlo (funcional, lógico, matemático, reactivo).

Programación Estructurada

La programación estructurada 4 es una técnica utilizada para escribir código de forma clara, utilizando subrutinas y tres estructuras: secuencial, selectiva (condicional) y repetitiva (iterativa).

Programación Procedimental

La programación procedimental amplia el enfoque imperativo con la posibilidad de desglosar algoritmos en porciones manejables usando procedimientos (subprogramas, rutinas o funciones). El propósito es un código más claro, evitando repeticiones innecesarias.

Programación Modular

La programación modular consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

Programación Orientada a Objetos

La programación orientada a objetos (POO, en español; OPP en inglés) parte del concepto de “objetos” como base, los cuales contienen información en forma de campos (a veces también referidos como atributos o propiedades) y código en forma de métodos 5.

Programación dirigida por eventos

Tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen 6.

Programación por Capas

Es un modelo de desarrollo en el que el objetivo principal es la separación (desacoplamiento) de las partes que componen un sistema: lógica de negocios, capa de presentación y capa de datos.

De esta forma es sencillo y mantenible crear diferentes interfaces sobre un mismo sistema sin requerirse cambio alguno en la capa de datos o lógica.


Actualizado: