Conceptos Básicos
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).
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.