Aprende programación de computadoras

Text
0
Kritiken
Leseprobe
Als gelesen kennzeichnen
Wie Sie das Buch nach dem Kauf lesen
Aprende programación de computadoras
Schriftart:Kleiner AaGrößer Aa

Aprende programación de computadoras

Miguel Ángel Aquino Martínez

Fernando Aquino Medina

Ilustraciones de:

Lenin Andrés Medina Aguilar

Emilio Aquino Medina

© Miguel Ángel Aquino Martínez, Fernando Aquino Medina

© Aprende programación de computadoras

Ilustraciones de: Lenin Andrés Medina Aguilar, Emilio Aquino Medina

Junio 2021

ISBN papel: 978-84-685-5886-8

ISBN ePub: 978-84-685-5887-5

Editado por Bubok Publishing S.L.

equipo@bubok.com

Tel: 912904490

C/Vizcaya, 6

28045 Madrid

Reservados todos los derechos. Salvo excepción prevista por la ley, no se permite la reproducción total o parcial de esta obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier forma o por cualquier medio (electrónico, mecánico, fotocopia, grabación u otros) sin autorización previa y por escrito de los titulares del copyright. La infracción de dichos derechos conlleva sanciones legales y puede constituir un delito contra la propiedad intelectual.

Diríjase a CEDRO (Centro Español de Derechos Reprográficos) si necesita fotocopiar o escanear algún fragmento de esta obra (www.conlicencia.com; 91 702 19 70 / 93 272 04 47).

Dedicado a mis héroes:

Ta Irineo Aquino y

Na Cándida Martínez.

Y en memoria de mi abuelo:

Ta Teófilo Aquino

Índice

Introducción

Capítulo I

La computadora

Componentes de una computadora

El hardware

Procesador

Memoria RAM

Disco duro

Conectividad

Pantalla

El software

Sistemas operativos

Aplicaciones

Capítulo II

Los programadores de computadoras

¿Qué lenguajes vas a aprender?

JavaScript (JS)

Swift

Recomendaciones importantes

Capítulo III

Preparación del espacio de trabajo

¿Qué necesitas para continuar con este libro?

Preparación del espacio de trabajo en la computadoras

Computadoras con sistema operativo Windows

Computadoras con sistema operativo macOS y en iPads

Programar en JavaScript en computadoras con sistema operativo macOS

Crear carpetas para almacenar los ejercicios

Capítulo IV

Primeros conceptos de la programación de computadoras

Reglas generales

Regla 1. Case sensitive

Regla 2. Uso de caracter fin de línea

Regla 3. Orden en la ejecución de las instrucciones

Regla 4. Incluir comentarios en los programas

Regla 5. Comandos o instrucciones para indicar el inicio y el fin del programa

Capítulo V

Escribir, grabar y ejecutar programas

Escribir un programa en JavaScript

Ejecutar un programa en JavaScript

Escribir un programa con Swift Playgrounds

Capítulo VI

La analogía del robot

Una ventana

Mueble organizador

Una pantalla

Lista de habilidades

Capítulo VII

La programación de computadoras

Tipos de datos

Tipos de datos primitivos

Tipo texto

Tipos numéricos

Tipo boleano

Otros tipos de datos en JavaScript

Otros tipos de datos en Swift

Capítulo VIII

Variables y constantes

Variable

Constante

Crear una variable sin asignarle un valor inicial

Crear múltiples variables o constantes en una misma línea de instrucción

Identificación de errores

Errores de escritura

Errores de sintaxis

Errores de lógica

Capítulo IX

Entrada y salida de datos

Entrada de datos

Salida de datos

Modo caracter

Modo caracter en Windows

Modo caracter en macOS

Modo gráfico con JavaScript

Modo gráfico con Swift

Otra recomendación muy importante

Capítulo X

Los operadores

Operadores aritméticos

Particularidades con JavaScript

 

Operadores relacionales o de comparación

Operadores lógicos

Jerarquía de operadores

Capítulo XI

Tomar decisiones

Instrucción if()

if() anidados

if() else

if() else if()

Operador ternario condicional

Manejo de opcionales en Swift

switch()

Capítulo XII

Ejecutar ciclos

while()

do o repeat

for()

Capítulo XIII

Funciones

Funciones predefinidas

Funciones definidas por el programador

Crear módulos

Paso de parámetros

Funciones que aceptan varios parámetros

Funciones que regresan valores

Ámbito o alcance de las variables

Otras características de las funciones

Capítulo XIV

Otros tipos de datos

Arreglos

Algunas operaciones con arreglos con JavaScript

Algunas operaciones con arreglos con Swift

Diccionarios de datos

Operaciones con diccionarios usando JavaScript

Operaciones con diccionarios usando Swift

Otra alternativa para manejo de opcionales con Swift

Comentarios finales

Continúa haciendo ejercicios

Aprende programación orientada a objetos

Aprende a usar tecnologías de desarrollo front end

Aprende al menos otro lenguaje de programación

Utiliza un IDE para el desarrollo de tus proyectos

Utiliza bases de datos en tus proyectos

Bibliografía

Introducción

¿Sabías que tu teléfono celular independientemente de la marca o modelo del que estás usando tiene mas capacidad que la computadora que hizo que el hombre fuera a la luna por primera vez? Si tienes tiempo, investígalo y te sorprenderás.

¿Te has preguntado si estás aprovechando todo el potencial de tu computadora o de tu teléfono celular?

¿Crees que le estás sacando provecho al pago por el wifi de tu casa y el consumo de datos de tu celular?

Estas preguntas te pueden venir a la mente porque cuando adquieres una computadora se incrementan tus gastos por el mayor consumo de electricidad, el uso de wifi; y por lo regular la compramos con una impresora a la que hay que agregarle cartuchos de tinta o de tóner y papel, y si además la computadora la usas solamente para ver películas, escuchar música, consultar correos, hacer video llamadas, jugar, bajar tus fotos digitales o entrar a redes sociales, estás desperdiciando tus recursos y algo aún más valioso: tu tiempo.

Si eres una persona que está acostumbrada a usar su computadora solo para el entretenimiento, quiero que sepas que tienes un gran potencial en tus manos. La computadora es una pieza formidable de tecnología que, si le sumas un poco de dedicación para aprender algo nuevo y lo complementas con un poco de creatividad puedes llegar a ser más productivo en tu trabajo o incluso puedes encontrar tu verdadera vocación.

Una de las cosas de las que puedes aprender es la programación de computadoras. No necesitas mucho, ya tienes la computadora, tienes en tus manos este libro, solo falta que le dediques tiempo y seas constante.

La programación de computadoras tiene beneficios para ti como persona, como estudiante y como profesional:

•Agudiza el pensamiento estructurado, el pensamiento lógico y la solución de problemas.

•Te hace más independiente, porque serás capaz de ejecutar actividades que antes tenías que pedir que otras personas las realizaran.

•Aumenta tu valor como profesional, porque se incrementan tus habilidades a nivel curricular.

•Puedes emprender tu propia empresa

•Trabajar desde la comodidad de tu casa… o desde tu hamaca

Aún con los beneficios que te puede aportar, puedes tener muchas dudas sobre si serás capaz de aprender a programar, puedes preguntarte ¿si eso es para mi?, que puede resultar complicado porque es “muy técnico”, que eso es solo para genios o hackers como los que aparecen en las películas. Todas tus dudas son válidas, pero yo te pido que te des una oportunidad porque en realidad no es complicado y con este libro lo podrás lograr.

Organicé este libro para que aprendas de una forma rápida y fácil. La estructura, la selección de la secuencia y el contenido de los temas en los capítulos están diseñados de tal forma que comprendas las reglas y los componentes de los lenguajes de programación.

Mi objetivo principal es que entiendas para qué sirve cada componente, que aprendas lo que sí se puede hacer y lo que no se puede hacer.

Mi segundo objetivo es que aprendas al menos un lenguaje de programación y apliques los conceptos aprendidos.

Y para hacerlo fácil, voy a explicar los componentes usando analogías para asociar, comparar y ejemplificar los conceptos de la programación con cosas que haces, cosas que usas en tu vida cotidiana y cosas que ya conoces.

Para que te vayas dando una idea del avance de tu aprendizaje y de hasta dónde puedes llegar desarrollando sistemas, voy a representar lo que vas aprendiendo como si fuera una planta que va creciendo desde la semilla hasta que se convierta en un árbol.


En cada capítulo sobre los componentes de la programación de computadoras mostraré el crecimiento de la planta.

También es importante aclarar que este libro no está dirigida a personas con experiencia en la programación de computadoras, mas bien va dirigida a:

•Personas que simplemente quieran saber si es algo que se le facilite aprender

•Alguien que quiera saber si es “bueno” para la programación

•Profesionales como abogados, contadores, administradores, etc., que quieren facilitar su trabajo cotidiano o aumentar su productividad y su valor como profesionales

•Estudiantes que estén cursando alguna asignatura sobre programación de computadoras

•Niños que quieran aprender a hacer sus propias aplicaciones

•Profesores que impartan clases de inducción a la programación

•Cualquier persona que quiera aprender

Finalmente, te quiero compartir que en mi caso descubrí la programación de computadoras en el último semestre de mis estudios del bachillerato, cuando todos mis compañeros tenían definido lo que querían estudiar, excepto yo . Pero hoy te puedo decir que la materia de programación del último semestre hizo que valiera la pena los 3 años del bachillerato , y me haría feliz saber si este libro te ayuda a descubrir que tienes talento para la programación de computadoras.

Miguel Ángel Aquino Martínez

Capítulo I

La computadora

Se puede definir a la computadora como:

•Una máquina que está compuesta de varios tipos de tecnologías

•Una herramienta para realizar cálculos, almacenar e intercambiar datos con otros equipos

•Una máquina increíblemente veloz, pero que por sí sola no sabe hacer nada.

Componentes de una computadora

Voy a mencionar solamente los componentes más importantes de una computadora y no ahondaré en cuestiones técnicas, ya que no es el objetivo de este libro.

Primero voy a dividir los componentes en dos partes:

El hardware

El hardware son los componentes físicos (lo que se puede tocar) de la computadora como el teclado, la pantalla, el procesador, etc.


Como parte del hardware se tienen los siguientes componentes:

Procesador

Esta pieza es un microchip que es el cerebro de la computadora, porque es quien ejecuta tareas y realiza cálculos a gran velocidad. Los procesadores están compuestos a su vez por núcleos que son como otros pequeños cerebros que ayudan para aumentar la velocidad de procesamiento. Mientras más núcleos tenga el procesador, más rápida será la computadora.

Así como los tipos de motores en las diversas marcas de automóviles, también existen varias marcas de computadoras con procesadores y velocidades diferentes.


Las velocidades de los procesadores se miden en Gigahercios (GHz) y el poder de cálculo lo da el número de núcleos. Existen computadoras con procesadores de velocidades de 1.8GHz, 2.4GHz, 3GHz o más, y con 1, 2, 4, 6, etc. núcleos. Mientras mas velocidad y más núcleos, la computadora es más rápida y más costosa.

Memoria RAM

Así como los humanos tenemos memoria para recordar hechos, cifras, fechas o personas, las computadoras también necesitan de memoria para almacenar datos de forma temporal para ejecutar tareas o hacer cálculos.

 

Esta memoria RAM también se le puede llamar de acceso rápido porque es la memoria que funciona mas rápido en la computadora, además es el componente que el procesador usa con más frecuencia para almacenar temporalmente la información que requiere para hacer cálculos.


Así como normalmente una persona sabe cuántos kilos pesa y cuántos metros mide, también la memoria RAM tiene unidades de medidas para saber cuánta memoria tiene una computadora o un teléfono celular (los teléfonos celulares también tienen RAM).

En la actualidad la medida más conveniente para medir la capacidad de la memoria es en Gigabytes (GB). Por poner uno ejemplo: en 1GB caben cerca de 600 fotos de alta calidad, 200 canciones y una película de una hora de duración.

Una computadora con 4GB es suficiente para navegar en internet, para procesamiento de textos, entre otros. Cuando se cuenta con más memoria RAM (8GB, 12GB, 16GB, etc.) la computadora se vuelve más rápida… y más costosa.

Disco duro

Así como las personas utilizan libros, documentos y cuadernos para escribir hechos, historias, información, cifras, etc., para después consultarlas, las computadoras también requieren de un componente para almacenar información y que pueda ser consultada en un futuro, este componente en las computadoras se le llama disco duro.

Una computadora con un disco duro de 250GB o 500GB es suficiente para almacenar los sistemas y datos para los usuarios en general.

Conectividad

Un componente importante para aprovechar al máximo una computadora es la capacidad de conectarse con otras computadoras u otros equipos como impresoras, teléfonos celulares, audífonos, televisores, etc.

La conectividad se asemeja a la capacidad de hablar y comunicarnos con otras personas para intercambiar ideas, sentimientos, hechos, etc.


En la actualidad existen diversas formas y tecnologías de conectividad, de los cuales las más populares son el WIFI y el Bluetooth.


Pantalla

La principal función de la pantalla es mostrar el estado de los sistemas que se están ejecutando. Es similar al tablero del automóvil porque indica el estado (velocidad, nivel de gasolina, etc.) del funcionamiento del coche.


El software

Además de ser todo aquello que no se puede tocar, el software representa el conjunto de conocimientos y habilidades que se le instalan o incorporan a las computadoras para que funcionen o para que realicen ciertas tareas específicas.

Vale la pena aclarar que se le llama software a las aplicaciones y a los sistemas, de hecho, aplicaciones y sistemas son lo mismo, y las aplicaciones y los sistemas son programas de computadora.

Para explicarlo mejor, el hardware sería el cuerpo de una persona y el software es todo aquello que la persona va aprendiendo o memorizando por ejemplo: biología, matemáticas, conducir un automóvil, las tablas de multiplicar, chistes, etc.

hardware


Voy a dividir el software en dos grupos:

Sistemas operativos

El sistema operativo es un grupo de software especializado que tienen como principal función la operación de una computadora. Estos programas están compuestos por una serie de tareas que hacen que todos los componentes del hardware funcionen correctamente. Teniendo en cuenta lo anterior, se puede decir que una computadora no puede funcionar sin un sistema operativo.

Continuando con la analogía, el sistema operativo de un automóvil estaría compuesto por las instrucciones para el uso del volante, la información del tablero, las instrucciones para el uso de los controles de volumen, direccionales, freno, acelerador, etc., todas las instrucciones e información para conducir el automóvil.

Ahora bien, así como en los automóviles las diferentes marcas definen y diseñan sus propios sistemas operativos para sus coches, en el mundo de las computadoras también existen diversos sistemas operativos que en esencia hacen lo mismo, pero tienen una interfaz diferente (la forma de interactuar y la forma en que se ve). Los sistemas operativos más conocidos son: Windows, macOS (para computadoras de marca Apple) y Linux.

Aplicaciones

Las aplicaciones o los sistemas son todo aquel software que adicionalmente al sistema operativo puede instalarse en una computadora para luego ser ejecutado. Existe una gama interminable de aplicaciones que van desde sistemas para generar documentos, manipular imágenes, diseñar planos de edificios, hacer presentaciones, manipular información, llevar contabilidad, etc.

Haciendo una analogía con una persona, las aplicaciones o sistemas serían el conocimiento y habilidades de una persona.

Algo muy importante que debes tener en cuenta cuando requieras instalar aplicaciones en tu computadora es que dichas aplicaciones sean para el sistema operativo que tienes instalado, de lo contrario no se podrán instalar y no se podrán ejecutar. Es como si intentaras instalar una llanta de un tráiler a una bicicleta.

Te puede resultar un poco confuso esta clasificación, sobre todo porque a las aplicaciones también le llamé sistemas. Voy a tratar de simplificarlo:

•El sistema operativo es el software que viene preinstalado en la computadora y hace que la puedas usar.

•Son sistemas que permiten que operes las computadoras

•Las aplicaciones son todos los programas que puedes desarrollar en tu computadora

•Pero… también se puede decir:

•Aplicación de nóminas o sistema de nóminas

•Aplicación de facturación o sistema de facturación

•Aplicación para venta en línea o sistema para venta en línea.

Capítulo II

Los programadores de computadoras

¿Por qué en el capítulo anterior mencioné que la computadora es una máquina increíblemente veloz, pero por sí sola no sabe hacer nada?:

Porque una computadora por sí sola podría estar encendida por muchos días y no realizaría nada, solo consumiría electricidad y tu dinero.

La computadora necesita de software adicional (aplicaciones) para que tenga una utilidad, para que ejecute tareas.

El software que se instala en las computadoras es desarrollado por un grupo de personas a quienes se les conoce como programadores de computadoras. Los programadores de computadoras aprendieron algún lenguaje de programación para comunicarse con el sistema operativo y el procesador de las computadoras. Todas las aplicaciones o juegos que se instalan en las computadoras, en los teléfonos inteligentes, en los relojes inteligentes y en los televisores están desarrollados en algún lenguaje de programación (de los que vas a aprender en este libro) y creado por uno o varios programadores de computadoras.

Así como una persona de México si quiere comunicarse con una persona de China, tiene que aprender mandarín para poder comunicarse con la persona de China.


Entonces para que un programador pueda crear un sistema o una aplicación para una computadora debe conocer al menos un lenguaje de programación (existen varios leguajes de programación), y de esto precisamente se trata este libro.

A lo largo de las siguientes páginas vas a aprender cómo hacer aplicaciones para computadoras para dos sistemas operativos: Windows y macOS.

¿Qué lenguajes vas a aprender?

Elegí dos lenguajes de programación JavaScript y Swift principalmente porque son fáciles de instalar en una computadora. Otros lenguajes requieren de instalaciones y configuraciones que preferí evitar para dar prioridad a los temas de la programación de computadoras.

JavaScript (JS)

Es un lenguaje de programación de fácil acceso, es ampliamente conocido como lenguaje para páginas web. Es importante mencionar que JavaScript no es lo mismo que el lenguaje Java son dos lenguajes diferentes, aunque tienen elementos similares.

Este lenguaje es multiplataforma, esto quiere decir que se puede ejecutar en Windows, macOS y Linux. Así que, si tienes una computadora con macOS también puedes aprender a desarrollar programas con JavaScript.

Swift

Es un lenguaje de programación creado por Apple para desarrollar aplicaciones en los iPhone, Apple Watch y Apple TV y en las computadoras con sistema operativo macOS. Swift es fácil de aprender y es lo suficientemente poderoso como para hacer grandes aplicaciones complejas.

Para hacer las prácticas con Swift yo recomiendo que uses una computadora de la marca Apple o un iPad (iPad Pro, iPad Air, iPad, iPad mini).

Swift se ejecuta también en Linux, y sin duda es cuestión de tiempo para que exista una versión para el sistema operativo windows.

Vale la pena mencionar que estuve a punto de incluir Python como un tercer lenguaje en el libro, si tienes curiosidad puedes instalarlo en tu computadora (con Windows o con macOS porque Python es multiplataforma) y podrás utilizar a Python para ejecutar los ejercicios y la vez aplicarás el conocimiento de los conceptos de este libro. Si logras aprender Python aplicando los conceptos de este libro por sí solo podrás aprender cualquier lenguaje de programación.

Importante

A menudo vas a leer que cuando hago referencia al sistema operativo, un lenguaje de programación, editor de textos, etc., en general todo el software tiene una versión. Por ejemplo:

Windows 10. Hace referencia a que es la versión 10 de windows.

macOS Catalina 10.15.45. Los desarrolladores de Apple bautizan con un nombre sus sistemas operativos y adicionalmente agregan los números de las versiones que en este caso es el 10.15.45, que quiere decir que es la versión 10, y los demás números se asignan cuando hay cambios, mejoras o corrección de errores.

Swift 5.0. Se refiere a la versión 5 del lenguaje, que es la versión que voy a utilizar en los ejercicios.

Sublime Text 3.2.2. Es la versión del procesador de textos que voy a utilizar para desarrollar los ejercicios.

También quiero agregar y aclarar que la actividad de escribir programas para las computadoras también se le llama codificar o escribir código, y al archivo con las instrucciones escritas en algún lenguaje de programación también se le llama código.

Hago la precisión porque este término lo van a encontrar en la mayoría de la documentación de los lenguajes y porque más adelante voy a mencionar el término código cuando haga referencia al archivo con las instrucciones que escitas en JavaScript o Swift.

Cuando leas:

•Código = instrucciones de un programa en algún lenguaje de programación

•Ejecuta el código, quiere decir: ejecuta el programa

•Tienes que corregir tu código, quiere decir: tienes que corregir tu programa

Recomendaciones importantes

Recomiendo que elijas un lenguaje para aprender en función de la computadora que tengas.

No pretendas aprender los dos lenguajes al mismo tiempo porque se podrá complicar tu aprendizaje. Pero si no se te complica… ¡adelante! ¡Te felicito!

En mi opinión, la clave para aprender a programar es:

Comprender los conceptos, los alcances y los límites de los componentes del lenguaje, luego intenta aplicarlos en algún lenguaje de programación.

La razón por la que en el libro se abarcan dos lenguajes de programación es para que observes cómo se aplican los conceptos aprendidos en los lenguajes, veas que existen variantes mínimas, y si te animas a aprender otro lenguaje apliques lo aprendido y ubiques las variantes.