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/02/02 15:56] – [Variables] 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 13: | Línea 28: | ||
| ==== Clasificación ==== | ==== Clasificación ==== | ||
| - | Por tipos: | + | Hay dos formas principales de programación: |
| - | * Declarativa | + | * **Programación Imperativa**: |
| - | * Imperativa | + | * **Programación Declarativa**: |
| - | Por paradigmas: | + | Por **paradigmas**: |
| + | * Imperativa | ||
| + | * Estructurada | ||
| + | * De procedimientos (// | ||
| * [[informatica: | * [[informatica: | ||
| - | * Programación dirigida por eventos | + | * Programación dirigida por eventos |
| + | * Programación declarativa | ||
| * Programación funcional | * Programación funcional | ||
| - | * Programación | + | * Programación |
| + | * [[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 41: | Línea 76: | ||
| '' | '' | ||
| - | Dependiendo del lenguaje, para definir una cadena se utilizan comillas simples ('' | + | Dependiendo del lenguaje, para definir una cadena se utilizan comillas simples ('' |
| ==== Variables ==== | ==== Variables ==== | ||
| Línea 70: | 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 79: | Línea 138: | ||
| * [[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.1612277817.txt.gz · Última modificación: por tempwin
