informatica:programacion
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion [2021/04/01 11:41] – [Buenas prácticas] tempwin | informatica:programacion [2024/08/28 15:42] (actual) – [Programación] tempwin | ||
|---|---|---|---|
| Línea 3: | Línea 3: | ||
| proceso por el cual una persona desarrolla un programa, valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, como C++, Java y Python, entre otros) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, que puede " | proceso por el cual una persona desarrolla un programa, valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, como C++, Java y Python, entre otros) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, que puede " | ||
| + | ===== Paradigmas de programación ===== | ||
| + | |||
| + | Estilos o enfoques de programación. | ||
| + | |||
| + | * **Programación imperativa**: | ||
| + | * **Programación declarativa**: | ||
| + | |||
| + | ==== Paradigma imperativo ==== | ||
| + | |||
| + | === Programación estructurada === | ||
| + | |||
| + | * Secuencia | ||
| + | * Sentencias de selección / control | ||
| + | * Sentencias de repetición | ||
| + | * Funciones | ||
| ===== Lenguajes ===== | ===== Lenguajes ===== | ||
| Línea 18: | Línea 33: | ||
| * **Programación Declarativa**: | * **Programación Declarativa**: | ||
| - | Por paradigmas: | + | Por **paradigmas**: |
| * Imperativa | * Imperativa | ||
| Línea 30: | Línea 45: | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | Por **nivel de abstracción**: | ||
| + | |||
| + | * **Bajo nivel**: lenguajes que están muy cerca del hardware. Difíciles de usar, pero son muy eficientes. | ||
| + | * **Alto nivel**: están cerca del lenguaje humano. Fáciles de aprender y usar, pero menos eficientes. | ||
| + | |||
| + | Por **características de implementación**: | ||
| + | |||
| + | * **Compilado**: | ||
| + | * **Interpretado**: | ||
| + | * **Estático**: | ||
| + | * **Dinámico**: | ||
| ==== Elementos ==== | ==== Elementos ==== | ||
| - | * Variables | + | |
| - | * Constantes | + | * **Operadores**: |
| - | * Bucles | + | * **Variables**: contenedores que almacenan datos. |
| - | * Condicionales | + | |
| - | * Funciones | + | |
| + | * **Bucles** | ||
| + | * **Condicionales** | ||
| + | | ||
| ==== Tipos de datos ==== | ==== Tipos de datos ==== | ||
| Línea 75: | Línea 105: | ||
| Además de las normas de nombrado, los lenguajes de programación tienen una serie de palabras reservadas que no se pueden utilizar en las variables (ni en funciones u otros identificadores). Siguiendo con Python, algunas de las palabras reservadas: '' | Además de las normas de nombrado, los lenguajes de programación tienen una serie de palabras reservadas que no se pueden utilizar en las variables (ni en funciones u otros identificadores). Siguiendo con Python, algunas de las palabras reservadas: '' | ||
| + | ===== Cómo empezar a programar ===== | ||
| + | |||
| + | Técnicamente, | ||
| + | |||
| + | * Un ordenador | ||
| + | * Un editor de texto | ||
| + | * Un intérprete o compilador | ||
| + | |||
| + | No es obligatorio, | ||
| + | |||
| + | Además de los requisitos técnicos, se requiren las siguientes habilidades: | ||
| + | |||
| + | * **Pensamiento lógico** para resolver problemas. | ||
| + | * **Capacidad de abstracción** | ||
| + | * **Capacidad de aprendizaje**: | ||
| + | |||
| + | Algunos consejos para empezar a programar: | ||
| + | |||
| + | * Empieza con un lenguaje sencillo: Hay muchos lenguajes de programación disponibles. Para empezar, es recomendable elegir un lenguaje sencillo, como Python o JavaScript. | ||
| + | * Encuentra un proyecto para trabajar: Trabajar en un proyecto te ayudará a aprender los conceptos básicos de la programación. | ||
| + | * No tengas miedo de cometer errores: Todos cometen errores cuando están aprendiendo a programar. Los errores son una parte normal del proceso de aprendizaje. | ||
| + | * Sé paciente: Aprender a programar lleva tiempo y esfuerzo. No te desanimes si no lo entiendes todo a la primera. | ||
| + | |||
| + | |||
| ===== Buenas prácticas ===== | ===== Buenas prácticas ===== | ||
| Línea 86: | Línea 140: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ===== Libros ===== | ||
| + | |||
| + | ==== Lenguajes ==== | ||
| + | |||
| + | * **Effective Java**, de Joshua Bloch | ||
| + | |||
| + | ==== Metodologías ==== | ||
| + | |||
| + | * **A Philosophy of Software Design**, de John Ousterhout | ||
| + | * **Clean Code: A Handbook of Agile Software Craftsmanship**, | ||
| + | * **Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software**, de Eric Freeman y Elisabeth Robson. | ||
| + | * **The Pragmatic Programmer: From Journeyman to Master**, de Andy Hunt | ||
| + | * **Refactoring: | ||
| + | * **Code Complete**, de Steve McConnell | ||
| + | * **Implementation Patterns**, de Beck Kent | ||
| + | * **TheArt of Readable Code: Simple and Practical Techniques for Writing Better Code**, de Dustin Boswell | ||
| + | * **Refactoring to Patterns**, de Joshua Kerievsky | ||
| + | * **Growing Object-Oriented Software, Guided by Tests**, de Steve Freeman y Nat Pryce | ||
| + | |||
| + | ===== Metodologías / disciplinas ===== | ||
| + | |||
| + | Metodologías de desarrollo de software. | ||
| + | |||
| + | * Extreme Programming (XP): pone más énfasis en la adaptabilidad que en la previsibilidad. | ||
| + | * Test-Driven Development (TDD): unión de escribir las pruebas primero (//Test First Development// | ||
| ===== Recursos ===== | ===== Recursos ===== | ||
| * [[http:// | * [[http:// | ||
informatica/programacion.1617270094.txt.gz · Última modificación: por tempwin
