Introduction to Programming and Computer Science - Full Course

Introduction to Programming and Computer Science - Full Course

SUBTITLE'S INFO:

Language: ES-419

Type: Human

Number of phrases: 1557

Number of words: 23606

Number of symbols: 115049

DOWNLOAD SUBTITLES:

DOWNLOAD AUDIO AND VIDEO:

SUBTITLES:

Subtitles prepared by human
00:01
Bienvenido a Introducción a la programación. Mi se llama Steven Y mi nombre es Sean. En los próximos 90 minutos, tomaremos a través de esta serie que consta de 21 diferentes segmentos que esperan cubrir los conceptos básicos de programación informática, que puede aplicarse a cualquier y todos los lenguajes de programación que quieras aprender. Comenzaremos con el más simple pregunta de qué es la programación, y de estaremos trabajando hacia arriba mientras hablamos sobre las características comunes de la informática tales como bucles y matrices. Discutiremos cómo leer y escribir código, depurar código que has escrito, algunas estrategias para ayudar a planificar tu código y mucho, mucho más. El completo lista de temas que se cubrirán en este video estilo conferencia se muestran en el pantalla ahora. Además, habrá marcas de tiempo en la descripción, así que siéntete libre de saltar si ya eres competente en algunas áreas de informática, o simplemente quiero saber sobre un tema específico que estaremos cubriendo. Con suerte, al final de la serie, podrás tener una comprensión básica de qué computadora la ciencia es, junto con un arsenal de útiles habilidades que te ayudarán a desentrañar lo que sea lenguaje de programación que decides aprender primero. Solo cubriremos los principales puntos clave que se aplican a todos los lenguajes de programación, entonces
01:02
estaremos evitando temas como codificación orientada a objetos y navegación de línea de comandos, como esas son cosas que son específicas del idioma. Además, no se requerirá software para que pueda descargar para seguir con este tutorial ya que no estaremos escribiendo cualquier código para mantener las cosas simples y concentradas. Este video está destinado a aquellos que estén interesados. en informática y programación pero tiene no tengo idea de por dónde empezar y tengo poco para no hay información de fondo sobre la codificación, y así si eso suena como tú, entonces ata a Sean y Me abro camino a través del loco mundo de informática, comenzando por la más grande pregunta probablemente en tu mente, que es qué incluso es la programación? Bueno, el diccionario lo define como el proceso. de preparar un programa de instrucción para un dispositivo, pero eso es realmente confuso definición, así que en términos simples qué exactamente ¿eso significa? Esencialmente, está intentando hacer que una computadora complete una tarea específica sin cometer errores Imagínese esto, por ejemplo: quiere que su menos inteligente amigo para construir un set de lego, excepto que tiene
02:05
Perdí las instrucciones y solo puedo construir a sus órdenes. Pero recuerda, tu amigo está lejos de ser competente, y si lo son no se dan instrucciones muy específicas sobre cómo para construir el set, hay muchos errores él podría hacer. Si él piensa como una computadora, entonces si hay una sola pieza que tienes No le dije específicamente dónde colocar y cómo colocarlo, todo el conjunto de lego ser arruinado y se le dejará sufrir un colapso mental completo que causa todo objetivo del proyecto que se corromperá. Dando instrucciones para tu amigo es muy similar a cómo codifican los programadores. En lugar de un poco menos que inteligente amigo, tienes una computadora menos que inteligente, y en lugar de instrucciones sobre cómo construir un set de lego, lo estamos alimentando con información sobre cómo completar un programa como un juego o Aplicación web. Una cosa importante a tener en cuenta es que los computadores son realmente muy tontos. Los construimos para ser tan sofisticados pieza de tecnología, cuando en realidad, un la funcionalidad principal de la computadora proviene de cómo lo manipulamos para satisfacer nuestras necesidades.
03:05
Ahora, programar no es tan simple como dar sus instrucciones amigo ya que en un programadores caso, la computadora no habla lo mismo lenguaje como tú, la computadora solo entiende código de máquina, que es un lenguaje numérico conocido como binario que está diseñado para que el la computadora puede leerlo rápidamente y llevarlo a cabo sus instrucciones Cada instrucción alimentada a la computadora se convierte en una cadena de 1 y 0 y luego interpretados por el computadora para realizar una tarea. Volviendo al ejemplo de lego, este proceso sería como si él no solo fuera menos que inteligente, pero para empeorar las cosas, no podía entender inglés y solo habla chino mandarín. Para hablar con él, debes convertirte las instrucciones que entiendes en inglés en el idioma que tu amigo entiende. Este proceso es esencialmente lo que debes hacer por su computadora para que se entienda Las instrucciones que le das. La gran diferencia entre los dos ejemplos, sin embargo, es que es muy difícil para que la gente entienda el código de máquina y el binario. Traduciendo directamente lo que quiere la computadora
04:06
hacer en código máquina es extremadamente difícil, de hecho casi imposible, y tomaría mucho tiempo para hacer si pudieras. Cada el programa se compone de millones y millones de esos 1 y 0, entonces cómo, exactamente, se supone que debemos traducir nuestras instrucciones en el código de la máquina? Aquí es donde entran los lenguajes de programación jugar. Los lenguajes de programación son fundamentalmente un intermediario para traducir un programa a codigo de maquina. Estos idiomas son mucho más fáciles. para que los humanos aprendan que el código de máquina, y Por lo tanto, son muy útiles para los programadores. Yendo volviendo a nuestro ejemplo de lego, un lenguaje de programación sería una especie de intérprete, eso es capaz de tomar las instrucciones que les das en inglés, y traducirlos en instrucciones tu amigo que no habla inglés puede entender. Esto hace que los lenguajes de programación sean extremadamente útil y la columna vertebral de casi cualquier bien programa. Piense en los lenguajes de programación como no inglés, y no código de máquina, sino en algún lugar en el medio. Hay muchos lenguajes de programación diferentes. por ahí que cada uno tiene su propio y único
05:07
usos. Lenguajes como Python y Java act como lenguajes de uso general que pueden realizar una variedad de tareas computacionales, mientras que RobotC o HTML / CSS son lenguajes diseñados para más propósitos específicos como mover un robot o construyendo un sitio web. Los idiomas también pueden varían en cuán poderosos son. Por ejemplo, JavaScript es un lenguaje de script que es diseñado para tareas más pequeñas mientras java o python puede llevar a cabo mucho más impuestos computacionalmente procesos. Medimos el poder de un lenguaje de programación, o nivel, por lo similar que es a la máquina código, la serie de 0 y 1 hablamos sobre antes Lenguajes de programación de bajo nivel. como el ensamblaje o C están más cerca del binario que un lenguaje de programación de alto nivel como como Java o python La idea básica es que cuanto más bajo sea el nivel de tu lenguaje de programación, más tu el código se parecerá a lo que la máquina puede interpretar como instrucciones Aparte de lo diferente propósitos que cada idioma cumple, eligiendo un lenguaje de programación generalmente baja
06:07
a una cuestión de preferencia, ya que generalmente hay muchos idiomas que realizan tareas similares. Pruebe diferentes idiomas y decida qué las propias reglas, interfaz y nivel de simplificación que más te guste. Entonces, ahora que sabemos qué es la programación, cómo ¿realmente escribimos código? No es como simplemente podemos escribir palabras en un documento de texto y automáticamente asume que la computadora puede traducirlo en código de máquina, leerlo, y llevar a cabo una tarea como abrir un navegador. Y además, no podemos simplemente escribir basura en ciertos lenguajes de programación mencionados en el episodio anterior y esperamos que la computadora comprender. Entonces, ¿cómo se supone que debemos escribir? código entonces? Bueno, la respuesta es con un IDE. Un IDE, que significa entorno de desarrollo integrado, permite la facilitación del código por una computadora. Los IDE proporcionan una interfaz gráfica en su computadora en la cual el programador puede fácilmente escribir, ejecutar y depurar código sin tener preocuparse por problemas con la compilación o interpretación del programa. Piensa en un IDE como cualquier otro programa en su computadora como un juego, un navegador o incluso el archivo explorador, excepto que lo usaremos para escribir código. Los IDE pueden convertir su código en
07:11
código de máquina y ejecútelo a través de la computadora para producir resultados. Además de proporcionar un lugar para programadores para desarrollar su código, los IDE proporcionan algunos herramientas extremadamente útiles para programadores facilitar el trabajo de escribir código, como el incorporado comprobación de errores porque ya hablaremos de más tarde; el código no siempre se ejecuta correctamente, autocompletar para palabras de uso frecuente o frases y jerarquía de proyecto que ayudarlo a organizar y manipular los archivos dentro de tu proyecto. De vuelta en los viejos tiempos, antes de los IDE, el código solía estar escrito en tarjetas perforadas y luego alimentados a las computadoras que tomaría horas y causaría mucho dolor. Los IDE de hoy en día actúan como una especie de vía rápida para escribir código y hacer muchas cosas Más fácil para los programadores. Un ejemplo de un específico IDE se puede ver en su pantalla ahora. En el centro puedes ver el programa que está actualmente siendo escrito, y justo debajo de la consola, que puede imprimir información útil para El programador. Se usa este IDE específico escribir código java. Los IDE son extremadamente potente y se utilizará en casi el 100% de tus proyectos de programación Entonces a través de estos IDE finalmente podemos escribir y compilar código sin problemas
08:12
preocupándose de que la computadora no pueda para entenderlo El siguiente problema que corremos en entonces se convierte en cómo escribimos este código en el IDE, porque no es como si pudiéramos simplemente escriba palabras al azar de una determinada programación lenguaje y esperar que el compilador comprenda eso. Aquí es donde un lenguaje de programación La sintaxis entra en juego. Ahora, como si estuvieras aprendiendo un idioma real, aprender un lenguaje de computadora puede ser muy similar. Algunos tienen diferentes estilos que pueden parecer extraños, algunos pueden hacerte usar conceptos abstractos o extraños lo cual puede ser confuso y, como todos los idiomas, los lenguajes de programación tienen un conjunto de reglas que debe seguir al escribir código en ese lenguaje, y a la vanguardia de aquellos Las reglas son la gramática. Se hace referencia a la gramática de programación como sintaxis y es muy similar al mundo real gramática. Cada lenguaje de programación tiene su propia sintaxis o reglas que debe seguir a un tee si quieres que tu programa se ejecute correctamente, como si estuvieras hablando en la vida real. Estas pueden ser cosas como la forma en que escribe ciertas funciones, lo que pones al final de una línea de código, y cómo configurar cierta funciones Cada idioma es único en su
09:13
sintaxis, y aunque algunos pueden compartir reglas similares, todos tendrán un capricho que lo hará permanecer fuera del resto. La sintaxis es algo que pilla a mucha gente por sorpresa, ya que muchos esperar que todos los lenguajes de programación sigan el mismo conjunto de reglas, pero como hablamos sobre en el último segmento, porque cada idioma está especializado para una tarea específica, cada uno necesita su propio conjunto de reglas para funcionar. Rotura o ignorar estas reglas resultará en un error, como romper o ignorar las reglas en la vida real darán lugar a un involuntario mensaje. Como ejemplo. Si quisiéramos hacer algo simple como inicializar una variable, que es algo que aún no hemos cubierto pero El ejemplo sigue siendo relevante. En java tenga en cuenta que tenemos que especificar qué tipo de variable estamos definiendo en este caso un número entero, y también agregue un punto y coma después de la declaración. En python, ni siquiera necesitamos definir que estamos tratando de crear una variable y solo tenemos que escribir lo que queremos crear, y en javascript, solo especificamos que somos haciendo una variable, pero no incluye qué tipo de variable que queremos hacer. Incluso en este simple ejemplo puede ver cuánta sintaxis
10:15
importa al aprender un nuevo idioma desde mientras que el objetivo de nuestro programa seguía siendo el mismo, defina un número entero con valor tres, todo el lenguaje de programación que se muestra tomó diferente enfoques. Todos estos idiomas requieren que sigues esta sintaxis porque recuerda, las computadoras son extremadamente tontos, si olvidas un punto y coma o extraviar un personaje, todo el programa no se ejecutará y le devolverá un error de sintaxis, que es algo de lo que hablaremos luego. Piense en esto como si olvidara una coma en una oración y todo el contexto de lo estás tratando de decir que te malinterpreten. Por ejemplo, en la oración "comamos, abuela". Si olvidaras esa coma, Si bien puede parecer un pequeño error, cambia todo el contexto de la oración, haciendo que parezca que estás a punto de comer tu abuela. Se siguen las mismas reglas para la programación, si olvida un punto y coma, todo el contexto de su programa podría estar dañado y malinterpretado. Ahora, otra cosa que hace que los IDE sean tan útiles es que te harán saber si y cuándo Hay errores de sintaxis en su código. Sintaxis errores, por supuesto, son partes de su código que no siguen las reglas de las que hablamos previamente. El IDE te dirá dónde
11:20
su código es el error, y tampoco permitirá ejecuta su programa hasta que el error haya sido fijo. Debido a la importancia de la sintaxis para escribir código y aprender un nuevo idioma, se recomienda que aprendas las reglas y sintaxis de un idioma antes de comenzar escribir programas complejos en ese idioma. La mayoría de las reglas son tediosas de aprender pero fácil de dominar y tan pronto como puedas hacer eso, podrás identificar fácilmente la sintaxis errores y cuídalos fácilmente. Eso cubre la esencia básica de sintaxis y programación reglas, así que ahora que sabemos CÓMO escribir código, y DONDE escribir el código, a continuación debemos cubrir ¿Qué sucede después de haber escrito nuestro programa? y ejecuta nuestro código. Porque escribir una pieza de código para un juego o una base de datos es genial y todo, pero después de que la computadora interpreta el programa, ¿cómo sabremos lo que está pasando? y si funciona o no? Bueno programadores haga esto mirando la consola. La consola es una interfaz de texto dentro de la computadora que nosotros los programadores podemos usar para una variedad de diferentes propósitos Si recuerdas, hace poco tiempo mostramos una imagen de un IDE básico, y uno de las partes principales de esa imagen fue el consola. El uso principal de la consola es generar texto del programa Esto generalmente se hace usando
12:23
Una declaración impresa. Una declaración impresa es un comando que hace exactamente lo que suena: Imprime texto en la consola. Esta impresión declaración es la primera pieza del CÓDIGO REAL hemos hablado en esta serie, y es tan simple como parece. La declaración impresa, a pesar de su simplicidad, es uno de los más funciones importantes en la programación y existe de alguna forma en casi todas las programaciones idioma. Lo más básico que puedes pedir es la impresión. declaración que hacer es simplemente hacer que diga alguna cosa. Esto se hace instruyendo al consola para imprimir, y luego incluir lo que sea desea ser impreso dentro de los paréntesis. Por ejemplo, en python, el segmento de código print ("Hello World") causará un mensaje leyendo "hola mundo" para aparecer en el consola. Con buena pinta. La declaración impresa también es vital para ver e interpretar la salida de la computadora de un programa. Por ejemplo, si le dices a una computadora para ejecutar un cálculo simple, por ejemplo para determinar qué es 4 + 3, ejecutará el programar internamente y calcular una respuesta. Sin embargo, ¿cuál es el propósito de tener el la computadora ejecuta este programa si no ser capaz de decir cuál es el resultado? En lugar de simplemente decirle a la computadora que realice este cálculo, indica a la computadora que imprimir la salida del programa a la consola,
13:26
y al finalizar el programa, 7 serán aparecer en la consola. Como puede ver, el la consola nos permite imprimir fácilmente información al desarrollador para una variedad de usos. Es importante tener en cuenta que la declaración impresa varía según el lenguaje de programación siendo utilizado. Por ejemplo, en Java hay múltiples versiones de la declaración impresa dependiendo sobre si desea un salto de línea después el texto impreso y las declaraciones impresas especializadas que hacen que su código sea más eficiente. También, la sintaxis general de usar una declaración de impresión y ciertos matices de su función pueden cambiar entre idiomas Sin embargo, generalmente puedes confíe en que lleve a cabo la misma función general, ya que es una declaración fundamental para la programación en general. Así que imprime declaraciones, imprimen información a la consola para el desarrollador para usar, agradable. Toda su funcionalidad hace que la declaración impresa, junto con la consola, un desarrollador muy útil herramienta. Sin embargo, es importante recordar eso es todo: una herramienta de desarrollo. La consola realmente no está destinada a ser vista por el usuario final de su programa. Tiende estar escondido detrás de escena y otros métodos para mostrar información como Se utiliza la visualización de texto, gráficos o imágenes. para transmitir información al usuario en su lugar. Piénsalo así, cuando estás usando tu teléfono, ves la consola en ninguno de
14:27
los programas que usas Entonces, si bien puedes usar la consola para darte información sobre cómo está funcionando su programa, no intente implementarlo en el producto final porque fundamentalmente no está destinado a eso. En general, recuerde usar la consola para su máxima extensión al escribir y solucionar problemas en sus programas, ya que es una gran herramienta para use para decir cómo se está desempeñando su programa entre bastidores. Así que ahora que conocemos mucha información sobre lenguajes de programación y cómo y dónde para escribirlos, junto con la declaración impresa debajo de nuestros cinturones, repasemos algo intuitivo cosas que la computadora puede hacer sola, sin que tengas que decirle cómo hacerlo. Más específicamente, cubriremos número básico Matemáticas y matemática de cuerdas Comenzando con las matemáticas básicas, la computadora Ya sabe cómo hacer aritmética simple. Esto incluye suma, resta, multiplicación, y división, todos los cuales están representados por los símbolos que se muestran en la pantalla ahora. En cualquier IDE que pueda instalar, será capaz de imprimir la respuesta a las matemáticas simples problemas al usar la declaración de impresión, que puede parecer contrario a la intuición porque ¿por qué usas la computadora para hacer matemáticas cuando tienes una calculadora perfectamente buena en tu teléfono, pero hay que recordar que las computadoras son
15:31
tonto, y todo lo que queremos que haga una computadora Tenemos que construir desde cero. Aritmética básica, Si bien es simple, ayuda en casi cualquier programa puedes escribir Por ejemplo, si quisiéramos construir una aplicación de calculadora básica, necesitaríamos utilizar esta funcionalidad para mostrar correctamente la respuesta a una aritmética problema cuando nuestro usuario intenta sumar, restar, multiplicar o dividir dos números. Ahora, además de las 4 ecuaciones matemáticas básicas, la mayoría de los lenguajes de programación incluyen un adicional operador conocido como módulo. Si este es tu primera vez que escuchas esta palabra, no te preocupes, ya que generalmente no se enseña en clases de matemáticas. El módulo nos permite obtener el resto de Una operación divisional. Por ejemplo, cuando tomamos 10 módulo 3, esencialmente estamos diciendo la computadora para tomar 10, dividirlo por 3, ignorar la respuesta real y solo danos el resto de esa operación en este caso 1, ya que cuando dividimos 10 por 3, la respuesta es 3 resto 1. El 1 en este caso es lo que se imprime fuera a la consola. Si no hay resto,
16:32
digamos en el caso de que tomemos 50 módulo 2, como el resto es 0, la función sería devuelve 0 si lo imprimiéramos. Esto puede ser extremadamente útil en muchos casos, el ser más obvio si queremos determinar si cierto número entero es par o no impar. Si tomamos un cierto número de módulo 2 y devuelve 0, entonces sabemos que es incluso desde cualquier número par dividido por 2 siempre resultará en una respuesta completa sin resto, pero si el sistema devuelve 1, entonces sabemos que el entero es impar. Te encontraras usando los operadores matemáticos básicos mucho más de lo que piensas, así que es bueno mantenerlos en mente al escribir sus programas. Ahora nuestra computadora puede trabajar con números, como bien como cuerdas. Las cuerdas por cierto son otra manera de decir simplemente texto. Por ejemplo, "hola mundo "es una cadena, la letra" a "es una cadena, cualquier cosa entre comillas se denota como una cadena en lenguaje de programación. Cubriremos más sobre Strings en un momento cuando hablamos de variables, pero por ahora continuemos. Ya hablamos de imprimiendo cadenas en la consola, pero vamos
17:36
decimos que estamos haciendo un juego y queríamos imprime la declaración " "Juego terminado, 4 fue tu puntaje final". Ahora bien, podríamos hacer una cuerda que dice esa frase exacta e imprímela en la consola, en algunos casos sería más útil para imprimir el valor entero real, especialmente en el caso de un juego donde el la puntuación puede cambiar cada vez que juegas, porque puntaje definitivamente no siempre va a ser 4. Bueno, también podemos imprimir múltiples cadenas de texto e incluso enteros "agregando" juntos en la declaración impresa. Esta se llama concatenación. Continuando con nuestro ejemplo de puntaje. Si quisiéramos para imprimir la declaración "Juego terminado, 4 fue tu puntaje final ", usando 4 como entero en lugar de una cadena, podríamos hacer esto desglosando la declaración en dos cadenas y un entero así. Imprimir ("Game over," + 4 + "fue tu puntuación final) Por supuesto, comenzamos con una declaración impresa, que nuevamente será diferente en todos los idiomas. Dentro de la declaración impresa comenzamos por imprimiendo la cadena "Juego terminado". Ahora
18:39
aquí viene la parte importante, a partir de ahí, usamos un signo más y agregamos 4 a la impresión declaración, al igual que si estuviera agregando dos números. Entonces, podemos repetir este proceso con otro signo + para la cadena final "fue su puntaje final "y podemos imprimir La totalidad de nuestra declaración es fácil. Al hacer esto, podemos imprimir fácilmente múltiples diferentes cadenas y enteros juntos en Una declaración impresa. También podríamos combinar las dos lecciones que hemos aprendido hasta ahora y hacer algo como "Juego encima, "+ (4 + 4) +" fue su puntaje final ", en el caso digamos donde tenemos un juego que te da un puntaje base, luego 4 puntos para una determinada tarea que completó. Esta demostracion También muestra otra parte importante de la programación, que a menudo es para obtener su programa para ser el más eficiente, tienes que combinar aspectos del código. Ahora es importante tener en cuenta que la computadora tomará lo que pones entre paréntesis e imprimirlo personaje por personaje, así que a menudo los programadores olvidarán agregar un espacio al final de sus cuerdas. Esta puede provocar un pequeño error en el que
19:41
se imprimirá la cadena del ejemplo anterior fuera como si dijera "Juego terminado, 4 fue tu puntaje final" que no es tan agradable cuando se muestra en la pantalla para el usuario, por lo que es una buena práctica siempre pon un espacio después y antes de tus cuerdas para asegurarse de que esto no suceda, y su la cadena no termina así. Otra cosa importante a tener en cuenta es la diferencia. entre "4" entre comillas y 4 sin comillas. Ahora "4" entre comillas las marcas se tratan como una cadena en lugar de una 4 sin comillas tratadas como un número Esto puede no parecer un gran trato, pero de nuevo las computadoras son tontas, y si intentas hacer cálculos matemáticos con un número entre comillas marca que devolverá un error, porque el la computadora no entiende que eres tratando de preformar la operación en un número, y cree que estás intentando agregar un número entero a una cadena, que es un gran no-no en la programación. Entonces, cuando esté programando, asegúrese de hacer una nota mental de si quieres o no hacer algo un número entero o una cadena, porque ese tipo de cosas hace una gran diferencia. Muy bien, eso concluye nuestro segmento en el
20:42
potencia base de las computadoras. Ahora a continuación vamos a cubrir uno de los componentes más importantes de la computadora ciencia, así que ASEGÚRESE de prestar atención porque a continuación vamos a cubrir variables, qué son y cómo los usamos. En primer lugar, ¿qué es exactamente una variable? Una variable es simplemente algo que puede almacenar información y puede ser referenciada y manipulada. Piensa en variables como una caja de cartón. Cartulina las cajas sirven como un medio para almacenar artículos en ellas que se puede cambiar, reemplazar y modificar. Las variables son como cajas de cartón que almacenan información para que el programador haga referencia, manipular y referirse. Cada variable simplemente tiene un tipo, un nombre y una información almacenado en su interior. El tipo y pieza de la información será cubierta a continuación y el nombre es simplemente un nombre para la variable, piense en como escribir una etiqueta en el cartón caja en sharpie. Ahora, hay muchos tipos diferentes de variables. que un programador puede usar, pero en este momento nosotros solo cubrirá lo que se llama "primitivo variables ", que incluyen enteros, booleanos, flotadores y dobles, cuerdas y caracteres. Comenzaremos hablando de un número entero. Un entero, o int para abreviar, es tan simple
21:46
como suena: una variable que puede almacenar un valor entero. Esto incluye todos los números enteros. de -2,147,483,648 a 2,147,483,648. Ahora observe cómo dije números enteros, variables enteras NO PUEDE y NO tendrá ningún valor decimal, así que tenlo en cuenta cuando uses variables. En segundo lugar es un booleano. Un booleano es un muy variable primitiva que puede almacenar un valor de verdadero o falso. Variables booleanas SOLO puede contener estos dos valores, y son extremadamente útil para declaraciones condicionales, que nosotros Cubriré pronto. Los siguientes dos tipos de variables son flotantes y dobles. Ambos tipos de variables. son tipos de datos de coma flotante, que esencialmente significa que estas variables pueden almacenar números con decimales. Mientras que los valores enteros no puede contener valores decimales, flotantes y dobles lata. La principal diferencia entre los dos es que una variable flotante puede almacenar números de una precisión de hasta 32 bits, mientras que la lata doble almacenar números con precisión de hasta 64 bits. Esencialmente, un doble puede almacenar más decimales lugares que un flotador, por lo que todo se reduce
22:50
a qué precisión desea que sea la variable. A continuación tenemos variables de cadena, que son como las cuerdas de las que hemos hablado de antemano, excepto almacenado en algún lugar de un valor. Las variables de cadena pueden almacenar cadenas de letras, que son solo palabras y oraciones. Instrumentos de cuerda son útiles para mostrar texto y almacenar información de entrada. Las cadenas también se pueden concatenar juntos para formar combinaciones de variables de cadena y cadenas preescritas. Esto es muy util para enviar información en un formato legible para el usuario Por ejemplo, imagina que nosotros tener una cadena llamada "nombre". El código pide entrada y almacena esa cadena de Texto en el nombre. Para enviar esta información a el usuario, en lugar de simplemente mostrar su nombre, puedes agregar la frase "Tu nombre es: "y convertirlo en una oración concatenando "Tu nombre es:" + nombre + "." Esta facilita la lectura de su código, mientras que también agregando variabilidad a su código, que siempre hace las cosas más interesantes para el final usuario. Finalmente, tenemos variables char. Char se encuentra por carácter, y tal como su nombre lo indica, cada uno puede contener un personaje. Esto es útil cuando un programador quiere leer uno presione el botón o un carácter en una cadena sin usar una variable de cadena. Especifico
23:51
ejemplo es hacer un juego controlado por el teclado El programa necesita reconocer el personaje que se presiona y traduce eso en llevar a cabo alguna función. Ahora Las cadenas también pueden contener un carácter, pero las de char no puede contener más de un personaje, así que sigue eso en mente al definir variables. Ahora, ¿por qué son tan útiles las variables? Bueno siendo capaz de almacenar información en un formato que puede ser referenciado fácilmente más tarde es esencial para cualquier buen programa A menudo en el código eres va a querer hacer un seguimiento de cosas como como nombre o puntaje de un usuario, y así creando una variable llamada "nombre" o "puntaje" puedes almacenar esta información en esa variable y luego referenciarlo, agregarlo o modificarlo eso. Además, muchas veces, el programa tendrá para recibir información del usuario, que no puede ser preprogramado en el código, y así Se requiere una variable para almacenar la información. Un programa también puede depender de factores que cambiar a medida que avanza el programa, en el que caso una variable se requiere una vez más. También, tomando estas variables y manipulándolas es bastante necesario para llevar a cabo muchos de las tareas que desea que realice un programa, por ejemplo, multiplicando las variables int o concatenando variables de cadena. Variables generales son la columna vertebral de cualquier buen programa y podrás
24:52
te encuentras usándolos a menudo si quieres código limpio y eficiente, así que es mejor que aprende qué tipos de variables necesita para usar y cuándo. Así que ahora que sabemos todo sobre los diferentes tipos variables y hemos hablado de ellos un poco, ahora vamos a profundizar más en lo que sucede cuando realmente definimos, o crear, una variable, cómo los referenciamos, y cómo podemos manipularlos para nuestros programas. Para comenzar, repasemos lo que sucede cuando Definimos una variable. Ahora cuando escribimos un línea de código que inicializa una variable, y ese código se ejecuta, la computadora esencialmente crea un pequeño espacio en la memoria que almacena su nombre de variable y su contenido para que Se puede hacer referencia más adelante. Volviendo a Nuestro ejemplo de caja de cartón. Piensa en esto como si tienes una instalación de almacenamiento y haces una nueva caja de cartón con la etiqueta "Nombre" y dentro de él pones un pedazo de papel con la palabra "NullPointerException" en él. Ahora, cuando quieras saber el contenido de su cuadro de nombre, simplemente puede mirar dentro y ver que tiene el contenido "NullPointerException". Esto es lo que hace la computadora, excepto el
25:52
la instalación de almacenamiento es memoria, la caja es una variable, y el contenido de la caja son cualesquiera que sean variable se establece para ser igual a. Cada vez que querer saber el contenido de la variable de nombre, simplemente puedes llamarlo y la computadora extraer la información que está almacenada en ese variable y usarlo como el usuario ve ajuste. Otra cosa a tener en cuenta muy rápido es que puedes hacer una variable sin poner información dentro de ella. Esto sería como si construiste una nueva caja de cartón, le diste es una etiqueta con un sharpie, pero simplemente no poner información dentro de ella. Eres simplemente guardando ese espacio en su almacén para más tarde. Esto puede ser porque desea almacenar información más tarde en el camino, o si estás va a usarlo para almacenar información dada a usted por el usuario, en cuyo caso NO PUEDE dale información ya que no sabes lo que ingresará el usuario. Solo tenga en cuenta que si intenta referenciar o señalar una variable que no contiene ninguna información, obtendrá lo que se conoce como NullPointerException, que a pesar de ser un nombre increíble para un Canal de YouTube, es algo que generalmente
26:55
desea evitar al programar. Ahora, los lenguajes de programación nos permiten hacer algunas cosas geniales con estas "cajas" que hemos creado Por ejemplo, vamos digamos que creamos una segunda variable "channelName" y en lugar de establecerlo igual a "NullPointerException", en su lugar lo establecemos igual a nuestro ya creado Variable "Nombre". Esto no crea un espacio en memoria para esta nueva variable; sin embargo, simplemente apunta a la misma ubicación de memoria ya hemos creado para el "Nombre" variable. Volviendo a nuestras instalaciones de almacenamiento. ejemplo, esto quisiera si en lugar de crear un cuadro completamente nuevo llamado "channelName" y almacenar una hoja de papel con la palabra "NullPointerException" en él, en su lugar simplemente agregó otra etiqueta debajo del "Nombre" cuadro, titulado "channelName". Ahora tenemos dos variables pero ambas apuntan hacia la misma contenido, que es la cadena "NullPointerException". Usualmente hacemos esto para ahorrar espacio en nuestro código por cosas que sabemos que van a tener El mismo valor. Las variables también se pueden actualizar a lo largo de su código. Por ejemplo, supongamos que tenía una "Edad"
27:56
variable, y dentro estaba el número entero 17. Entonces celebraste un cumpleaños y quisiste para actualizar tu edad. Todo lo que tienes que hacer es hacer referencia a la variable y establecerla igual a cualquier nuevo entero que desee la variable mantener, en este caso 18. Este sería el lo mismo que tener una caja etiquetada edad, con una hoja de papel leyendo 17 dentro de él, y luego sacando ese pedazo de papel, borrando 17, reemplazándolo por 18 y luego colocándolo de vuelta a la caja. Al hacer esto, podemos para actualizar fácilmente el contenido de nuestras variables en todo el código como cosas dinámicamente cambio. Como otro ejemplo, si estuvieras haciendo un juego de rol, es probable que tu personaje tenga estadísticas como ataque, defensa, maná, etc. Como el el juego progresó, puedes actualizar continuamente las variables para que el jugador pueda obtener más poderoso cuanto más lejos que pasó por el juego, y no lo harías Hay que crear nuevas variables. Tu solo simplemente necesita seguir agarrando esa caja de su instalación de almacenamiento, borrando y reemplazando los números en la hoja de papel, y luego continúa junto con tu código. Solo mantente adentro cuenta que estas variables no son nada más
28:59
que lugares en la memoria en los que cierto valor se almacena, por lo que podemos actualizar fácilmente los números, y su lugar permanecerá constante. Después un código ha seguido su curso, el lugar en la memoria se elimina hasta que vuelva a ejecutar el código y el programa dedica espacio para la variable de nuevo. Cada vez que ejecutas el código, eres haciendo nuevas cajas en su instalación de almacenamiento, y al final de tu código, los destruyes todo para hacer espacio para nuevas cajas la próxima vez. Otra cosa genial que puedes hacer con variables es sumarlos, restarlos, multiplicarlos, dividirlos, e incluso modularlos. Ahora esto en su mayoría solo funciona para variables enteras como multiplicar y dividir cadenas no tiene demasiado sentido Pero si estuvieras haciendo una aplicación de calculadora y almacenaste la primera número que el usuario ingresó como num1, y el segundo como num2. Entonces podría multiplicar num1 y num2 juntos, e imprímalos o almacénelos ellos en una nueva variable titulada resultado. Entonces, cada vez que ejecuta el programa, el usuario podría ingrese nuevos números en las variables num1 y num2, y simplemente se establecerían en esos nuevos enteros y devolver el resultado que corresponde a esos números específicos. Esto permite
30:02
para mantener un registro fácil de qué números son cuál y qué está pasando en su programa lo cual es extremadamente útil Además, mientras tú no puede restar, multiplicar, dividir o tomar el módulo de cadenas, puede agregar ellos. Digamos que tienes una cadena Str1 con los contenidos "Hola" y un Str2 con los contenidos "allí". Puedes agregar Str1 y Str2 para crear una cadena que tenía el contenido "Hola", ya sea almacenándolo en un tercera variable o imprimirlo en la consola. El último tema que trataremos sobre tema de variables son las convenciones de nomenclatura de una variable, que aunque parezca extraña, pero es extremadamente importante cuando se trata de lea su código para que lo cubramos ahora. Ahora, las variables tienen que ser una cadena continua, y si quisieras hacer una variable que almacenado el puntaje del jugador, tendrías que encontrar alguna forma de combinar las palabras jugador y puntaje, ya que no puedes tener la frase "jugador puntuación "será el nombre de una variable. Todos los programadores tener su propia preferencia personal cuando viene a nombrar variables, pero la que se utilizará en esta conferencia se llama CamelCase,
31:07
cual es el proceso de no capitalizar el primera palabra, pero capitalizando cada palabra que lo sigue Volviendo a la puntuación del jugador ejemplo, usando el método camelCase, la variable se llamaría playerScore. Esto nos permite identificar fácilmente cada palabra y se convierte realmente útil para nombres de variables largos como thePlayersScoreBeforeFinalBoss ", mientras que si lo escribimos sin mayúsculas, Sería realmente confuso. Esto ayudará una tonelada cuando empiezas a encontrar errores en tu código y necesita escanear rápidamente su programa para averiguar qué está mal, y se suma a la legibilidad general del programa. Otro los programadores pueden usar diferentes convenciones de nomenclatura como usar guiones bajos para separar las palabras en una frase, pero por ahora nos quedaremos con camelCase. A continuación, pasaremos a condicional declaraciones, que en esencia, son declaraciones que cambian la ruta de nuestro código dependiendo bajo ciertas condiciones. Por el bien de mantener cosas simples, para esta sección, líneas rojas connotará que nuestro código NO seguirá
32:07
ese camino específico, y las líneas verdes significarán que nuestro código ES siguiendo ese camino. El tipo principal de declaración condicional que los programadores usan es la declaración if, y esto aparecerá innumerables cantidades de veces en cualquier programa que escribas Es tan simple como suena: si alguna condición es verdadera, y generalmente la condición estará encerrada por llaves, luego siga las instrucciones ubicadas dentro de los corchetes de la declaración if. Más, Haz otra cosa. Ahora, los corchetes se usan en la mayoría de la programación. idiomas para indicar un segmento de código que correrá. Funciona así, si la condición entre paréntesis es verdadero, entonces todo el código contenido dentro de los corchetes se ejecutará, y si la condición entre paréntesis NO es cierto, entonces se saltará todas las declaraciones dentro de los corchetes Una nota rápida es que mientras este es el caso con la mayoría de la programación idiomas, algunos; como Python, use dos puntos y espacio en blanco para determinar dónde un pedazo de el código comienza y termina, pero por el bien de En esta serie, usaremos llaves. Ahora, la condición dentro del paréntesis puede tomar miles de formas diferentes como
33:12
como si el valor de la variable de cadena Nombre es igual a "Steven" o si el puntaje del jugador, almacenado en una variable int, es mayor que 5, la lista sigue y sigue. Cada uno de estos las declaraciones se evalúan como un valor booleano, que recordarás de cuando hablamos Las variables son verdaderas o falsas. Si el boolean es cierto, ejecutamos el código dentro del llaves, si no es así, pretendemos todo dentro de las llaves nunca existieron y sigue con nuestro código. La declaración if viene con dos más adicionales declaraciones que pueden acompañarlo: de lo contrario, si y más. De lo contrario, si se usa una declaración condicional directamente después de una declaración if, y lleva principalmente la misma función que una declaración if. Sin embargo, la otra declaración if solo será evaluado si el anterior si (o si no) la declaración se omite debido a su condición siendo falso Entonces lo atravesaríamos como entonces, si algo es cierto, correríamos el código dentro de las llaves de esa declaración. De lo contrario, si ese algo no es cierto, PERO otro
34:12
declaración dentro de paréntesis es cierto, nosotros luego ejecutaría ESE segmento de código. Y si ninguno de ellos son ciertos, nos saltearíamos ambos segmentos de código y seguir adelante en nuestro programa. Este es un concepto difícil de entender so let's do an example. Si tuviéramos un programa that evaluated the if statement if (age = 10), we could then have a statement under that que declaró si (edad = 12). Ahora, si el age variable was 10, which we can see from the example it is, then the code immediately following that conditional statement in the los corchetes correrían. The else if statement we made would not even be tested since we know it is going to be false, and thus the print statement inside of THAT conditional statement's brackets will be ignored, and the code will move on to the rest of the program. Now, for example, let's say we changed the age variable to be 12 instead of 10. Now, instead of the first conditional statement being, true, it actually evaluates as false, since age no longer equals 10. So what we do now, is first skip over the print statement which prints out that the age is 10, since it's not. Y ahora evaluamos el otro si declaración. We check if age is equal to 12, which again it does, and so now we run all
35:15
the code inside of that conditional statement before finally moving on to the rest of the program. So as a review, we check the initial if statement, if it's good we run all code within that if statement's curly brackets and move on with our program, if the initial if statement is NOT true, we then move on to any else if statement's and evaluate if THOSE conditional Las declaraciones son ciertas. We can have as many else if statements as we want, although this could lead to clutter amongst your code so we'll talk about some alternatives later on to help esto afuera. Now that takes care of the if-else statement, so now we'll move on to the else declaración. The else statement once again comes after an if or an else if statement, and will carry out its instructions no matter what, as long as the preceding statement/statements are evaluado como falso If we went back to our previous program, we could add an else statement which would only have the code in its brackets run if the age variable wasn't “10” o "12". This would catch all cases of the program that didn't fit our parameters. It's good practice to ALWAYS have an else statement at the end of your conditional statements to catch any weird cases that may come up in your program. Now remember back to the fact that we can have thousands of else if statements, after
36:17
a while that can get pretty cluttered, and so another very useful conditional statement which helps circumnavigate this problem is the switch statement. Una declaración de cambio es functionally similar to many if and else if statements together. Escribes una declaración de cambio in the form of switch (variable), and then below that you write how many cases that the variable podría ser. For instance, if we wrote switch(var), then under it we could write out 5 cases that the variable var could be, and then the instructions listed under that case to be carried out if the var variable is equal to that case. Now switch statements are different since instead of using brackets, they use a colon to signify the start of a set of instructions, and a break statement to end it. Esto es muy useful because you are able to essentially use many if and else if statements without tener que escribir casi tanto. In switch statements, you just always have to remember to include a default case at the bottom of the expression to denote any and all cases que no cumplan los requisitos anteriores. Esto simplemente captura todas las entradas que no encajan dentro de los casos principales del programa. It's very similar to an else case at the final de una cadena if-else. Ahora, ¿por qué son tan útiles estas declaraciones? Bien, many times, programmers want their programs to function differently depending on different condiciones For instance, a program could
37:20
function differently depending on the information that the user inputs, such as allowing a user to use a program or not use a program if they are above or below 18 years old respectively. Or in say a video game, if a user's experience level is above a certain threshold we might quiero darles oponentes más duros para la batalla. Otro ejemplo podría ser un programa que cambia the color scheme depending on the time of day. O incluso más simplemente, si un usuario presiona a button that is meant to move on to another screen in an app, the programmer would only want the app to change screens if the user clicks that button. Un programa sin condicional statements would do the same thing every time, and would be very primitive compared to one eso puede cambiar dependiendo de sus condiciones. So now that we know how to make and use variables, how to compare them, and what we can do with those comparisons, let's move on to another foundational concept of computer science: matrices Now we've already talked about variables, and how great they are for storing singular bits information for making our code more simplistic, but one of the biggest drawbacks that come with variables is their inability to hold more than one piece of differing information. For example, let's say you're making an app which allows users to create a grocery
38:22
lista. Well there's no real easy way to create lists using variables, because it's not like you can have one variable store the names of 7 or 8 different food items. Recuerda, we can only put one piece of paper in our cardboard box; no más. Y además, incluso if you were to add multiple items to one string variable, you still would have a lot of trouble doing simple tasks you might want from a list like searching through it or splitting it or even deleting items from the list when you're done with them. Este es el problema que usar arreglos nos resuelve. An array is, as you may have guessed by now, a list. Puedes tener una variedad de enteros, an array of strings, and even an array of other arrays which is something we'll cover en un minuto. Programmers use arrays when they want to store a lot of variables containing information that is all related to each other, such as a grocery list or a high score list en un juego Think of arrays as a column in excel or google sheets. Tienes el titulo at the top and then below it are a bunch of bits of information which all relate to the título. Arrays are super useful when programmers want to store a lot of information that can
39:27
be easily searched through because programmers have developed methods of breaking down and using arrays to find specific information in arrays full of thousands of different variables. As an example to show just how useful arrays are, let's say you're a startup company que posee una aplicación que tiene 100,000 usuarios. Cada time a user wants to create a new account, they input the username they want and then your program will have to check to make sure el nombre de la cuenta aún no se ha tomado. Hacer esto requiere que busques a través de the information of all 100,000 of your users to see if that username has an account with tu servicio. An array would be able to contain all of this information and make it easy to search through and find out if the account name has been taken with little to no delay. Now the single most important thing to note about arrays is how you reference each element of the array within them. Let's create a basic array called numbers, and inside of puso los dígitos 1-10. Now when we want to refer to each cell in this array, we call sobre su "índice". An index is just a fancy way of saying that numbers are placed within la matriz Now you would think that the first integer in this array would be the first index,
40:32
the second would be the second index and so on, but that's not the case. En computadora science, programming languages refer to the first cell as the 0th element in the array. This means that if we were talking about our array of numbers we just made, the number 4 would actually be in the 3rd index, 5 would be in the 4th and so on, so instead of starting our count from 1, we start from 0. It's extremely weird and confusing but it's one of those programming quirks you are going to have to memorize and commit to memory. If you were to not follow this nomenclature and you refer to the last element in this array as the 10th, you get what is referred to as an “out of bounds” error, since you are trying to reference the 10th element, but there is no 10th element. Que eres en realidad tratando de hacer es referenciar el noveno. Another extremely important thing to note about arrays has to do with their size. Cuando you initialize an array, you can do it either one of two ways. Puedes llenarlo with the elements that you want contained in the array right then and there, creating and filling the array at the same time, or you can define how many elements you want
41:34
in the array-essentially the arrays size- and then populate it with elements later. This is because when we initialize an array, it creates a space in memory that has a size de exactamente lo que le das, ni más ni menos. Esto es genial para cuando queremos acceder a elementos in the array because we can do so instantaneously, but the one downside is that we can't increase the size of the array later on, all array sizes are final. Piensa en ello como en un escenario arriba una estantería con libros. By populating a bookshelf with a certain number of books and then moving on and filling the next shelf with different books. No tenemos camino por recorrer BACK and add books to that first shelf without shifting everything. Una vez que decidamos cuánto space to dedicate space for an array in this case, there's no way to ADD more space. Once again because this is extremely important to remember, this means that once an array has been defined, there is NO WAY to change the size of it. Si tienes una matriz titulada
42:34
“Names” with a size of 8, and you try to add another name to the array you will receive an error, so be careful when messing around with array sizes. Por supuesto que puede always go back at the start of the code when you initially MAKE the array and allocate more space to it if you find out you need more space to hold items, but once it's definido, NO PUEDE cambiar su tamaño. Another small thing I want to touch upon really quickly is that when you initialize an array, you must determine which type of array it is right then and there. Por ejemplo tienes to specifically say it will be an array of strings or integers when defining it, and also you're not allowed to mix and match, meaning you can't have an array full of integers with a few strings and some doubles thrown into the mix. Tienen que ser todos los el mismo tipo. Now the last thing we're going to cover on arrays is a little funky, and that is the práctica de colocar matrices dentro de matrices. Si crea una matriz de matrices, se refiere como una matriz 2D o bidimensional. Pensar of these as matrices if any of you have taken
43:35
clases de álgebra Now If you haven't, think back to our google sheets example but instead de solo columnas, también agregaríamos filas. Entonces, cada elemento de nuestra matriz no simply be just a String variable or an Integer variable, but an entirely new array with its Conjunto propio de valores y elementos. The way we index these is mostly the same, except we would have 2 numbers to index instead de 1. Comenzamos con la fila y luego la columna. Entonces un número en la posición (0,2) sería in the first row three columns down, in this case the name Clint. Un número en el puesto (1,1) would be two rows down and 2 columns across, in this case the name Chris. You get la idea. Now you can also make 3-dimensional arrays by putting an array inside an array inside an array, but that's a little above what we're going to be covering so I'm lo cortaré allí. Next up we're going to be talking about loops, so what exactly are loops? Next up we're going to be talking about loops, so what exactly are loops? Next up we're going to be talking about loops, so what exactly are loops?
44:37
Next up we're going to be talking about loops, so what exactly are loops? Next up we're going to be talking about loops, so what exactly are loops? Well as you could probably tell by that statement right there, a programming loop is a statement that is used to run certain instructions repeatedly, just like how the opening statement of this El tema se repitió 5 veces. Loops are very useful for a variety of reasons. Por ejemplo, imagina que quieres imprimir algo 15 veces. Claro, puedes copiar y pegar la impresión declaración 15 veces. Pero esto es realmente molesto to have to do, and becomes even more unrealistic cuando ese número sube a, digamos, 100 más o menos. ¿Y si en lugar de reescribir lo mismo instructions over and over again, you could simply place the print statement inside of a loop, and it will occur as many times as you would like, that's the power of loops bebé. With loops we're able to repeat parts of code multiple times. Ahora hay tres different types of loops that we will be discussing hoy. Y arriba está el bucle for. A for loop is very useful for situations described above, where you would like to carry out a cierto conjunto de instrucciones en numerosas ocasiones. La sintaxis de un bucle for varía según on the language, however it usually consists of three parts. Un valor entero, una condición
45:40
which the integer value must meet in order to exit the loop, and an operation to modify the integer value after the instructions inside of the loop are completed. Cada vez que para loop runs, the operation you set will be performed on the integer, and as long as that integer still meets the condition you set, usually being greater than or less than a constant valor, el bucle for continuará ejecutándose. Eventually, when the integer has been modified by either increasing or decreasing it to the point where it no longer meets the condition, the for loop will terminate and the code will seguir corriendo Por ejemplo, digamos our integer value was i and we set it equal to 0, then we set the conditional statement as i being less than 3, so basically we're saying that as long as i - the variable we just created - is less than 3, continue running Las instrucciones contenidas dentro del bucle. Finalmente, hacemos la operación i + +, que significa each time the loop runs we will increase it by one, and inside the loop let's just put Una simple declaración impresa. Ahora recorramos el ciclo. We start with i = 0, 0 is less then 3 so we enter the bucle e imprimir Hello World. Now that the instructions are done we add 1 to i making it 1. Moving on, 1 in less than 3 again, so we once again enter the loop and print out
46:45
Hola Mundo. Again, we add 1 to i, making it 2 now. 2 todavía es menor que 3, así que ingresamos el bucle de nuevo e imprima hola mundo. Finalmente, agregamos 1 a i una vez más y se convierte en Tres. 3 is not less than 3 though, it is equal to 3, and so we don't enter the loop and it terminates, moving on to the next segment de código Este es un ejemplo simple, pero tú can extrapolate it across programming to fit tus necesidades. Now when using a for loop you have to make sure to set up a condition that, given the initial integer value and the operation, will at some point not be met, to avoid creating un bucle infinito y bloqueando su programa. Se produce un bucle infinito cuando das un for loop a condition which will always be met given the parameters of the program, and so el software falla. For example, a for loop beginning at 10 and checking if i is ever less than 0, and then adding 1 to i at the end of the loop will never terminate, since Solo aumentaré infinitamente. After the for loop is the very similar for each loop. A para cada bucle (o para for-in-list loop, in python) is used for iterating through arrays or lists. Esencialmente, el bucle será go through each element in the array and carry out some set of instructions for each value.
47:50
If you would like to read all of the elements in an array and compare them to some value, or perform some operation on them, a for each loop is extremely useful. Así por ejemplo, we could have a for each loop which iterated across an array and simply printed out the valor de cada ubicación de matriz. A continuación, tenemos el bucle while. A while loop will continually carry out its instructions while a conditional statement given to it es verdad. Esto puede ser tan largo como cierto variable is true, as long as a number is less than another number, or while a value is still igual a otro valor. While loops are different than for loops in that the loop is not contained within one statement, but stretched out and will continue to run so long as its condition es verdad. Like a for loop, you can make the condition such that it will eventually return false and exit the loop, however while loops will not crash your computer should you create Un bucle infinito. In fact, it is very common for while loops to run infinitely, as, for certain programs, you would like the program to continually be iterated through instead of running once, all the way through until you exit out of the program. When programming a game, for instance, a while loop would be used to iterate through your
48:50
code, continually refreshing the screen as the game runs. Desde allí puedes realizar operations on the screen to make the game playable. Crear un ciclo while infinito would simply be done using the syntax while(true), as the condition true will always be evaluated como cierto Finally, I'd quickly like to cover an extension of the while loop, the do-while loop. Do-while loops are very similar to while loops, except they will carry out their instructions at least once, even if the condition is false, and then will carry on like a basic while lazo. Essentially, the conditions inside the loop will run AT LEAST once, and then if the condition is still met they will run again and function as a normal while loop. As you can see, loops and their many varieties have some extremely useful functions. Utilizando them, you are able to perform an operation many times in a row, you can iterate through arrays and lists, and overall decrease the clutter of your code. Next up, we're going to take a break from learning about common programming statements, and dive into what happens when the code we write doesn't work. Más específicamente, vamos a be covering the different types of errors that can occur when you're programming, y lo que los causa.
49:52
Now when you're writing code, you have to understand that things aren't always going to go the way you expected them, and sometimes the program doesn't always work as you had Lo pretendía. We programmers call these errors and while annoying, they are always going to come up in computer science and so it's best to learn what they are and how to tratar con ellos. Often referred to as “bugs”, errors in scripting languages can be narrowed down to one of three “types”: syntax, runtime, and logic, all three of which we estará cubriendo en el video de hoy. To kick things off, let's talk about syntax errores These are usually the easiest of the 3 to solve since they are oftentimes something that can be fixed within seconds. Si tu recuerdas back to earlier in the video when we talked about syntax and programming rules, we said that if you were to break the programming rules, or syntax, that it would result in un error. Well that's what syntax errors are, parts in your program where you fail to meet the programming rules and so the computer doesn't know how to interpret your code. This can be anything, from forgetting a semicolon at the end of a statement in java, accidentally
50:53
defining a variable with two words instead of one, or even just misspelling the word String when you're trying to define a string variable. Por suerte para ustedes, estos errores are extremely easy to fix since you just need to figure out where the error occurred and cuál era la regla de sintaxis que rompiste. Now thinking back to IDE's, we mentioned that IDE's are so useful because they do precisely that, they underline syntax errors and usually provide consejos útiles sobre cómo solucionarlos. Pensar of syntax errors as small misspellings or grammatical errors in an essay you're writing, annoying; sí, pero no el más irritante cosas. Another useful thing about IDE's when it comes to syntax errors is that the program will actually restrict you from running the code unless all syntax errors are cleared, haciéndolos aún más fáciles de identificar y arreglar. The second type of error we will be covering is the runtime error. Estos errores no show until you actually “run” the code, hence the name “runtime” error. Tiempo de ejecución errors are caused by a statement in your code that SEEMS seems logically sound, but the
51:54
computer physically has no way of computing it in a reasonable amount of time. Lo mas common of these errors is one which we've already talked about; El bucle infinito. Como a refresher/example, think of an infinite loop like this. Digamos que sentó a su amigo in front of the TV, put on the Office on repeat, and told him he could leave as soon as Michael hizo una broma de "Eso es lo que ella dijo". Parece bastante simple ¿verdad? Incorrecto, porque instead of putting in the Office, you put in FRIENDS on blu ray. No michael, no inapropiado joke, meaning your friend would be sitting there for the rest of his life probably confused as to why Dunder Mifflin looks so much like a coffee shop. Esto es esencialmente lo que sucede. with the computer, you give it some condition that it has to complete before the program puede terminar; however, you give it no feasible way to finish that task. Esto pone la computadora in error mode and most likely will crash your program, as the computer desperately tries to complete the condition you gave it. Como a computer example, if we try to have a program terminate when an integer i is no longer greater than 99, but i is initially 100 and only increases,
52:56
the loop will never terminate and the program will crash. Para evitar esto, generalmente want to think through the flow of your code before running it -especially with loops- to make sure that all of your statements can be completed by the computer. Planificación cuidadosa out your code before you begin writing it is an extremely useful practice, and something we'll be covering towards the later part de este video The final type of error that we will be covering is a logic error. Este error también es bonito. Autoexplicativo. A logic error occurs when the code runs smoothly without any runtime or syntax errors, but the result that you get isn't what you wanted. Por ejemplo, let's say you had a calculator app, and you wanted to instruct the program to add two numbers, except it multiplied them instead because you used the multiplication symbol en accidente. This leads the sum to be 36 instead of 13. Nothing went wrong with the code syntax or runtime wise, the code runs just fine, it just doesn't work as you intended it to. These are often the hardest types of errors to debug since most of the time, you'll
53:57
have no idea why the code isn't working, and certainly not any idea of how to fix it. This is why it's a good idea to test your code incrementally, don't wait until you've been programming for an hour before testing your application, or else you'll run into Muchos errores lógicos. Logic errors can be extremely frustrating and could cost you a lot of time, making them a huge pain, but if you know how to effectively debug your código, estarás bien. Speaking of debugging your code, that brings us straight into our next topic, which is Cómo depurar tu programa. Ahora, digamos que has escrito un programa. You think it's ready, and you're ready to Pruébalo. You've been working hard on this, and you're excited to see it in action. You run the program, and wait for it to run smoothly and efficiently. Solo que no trabajo. You have encountered one of the three errors we just mentioned. De verdad quieres este código funciona, pero ¿cómo? This is where debugging comes into play. If the code is giving you an error, then the first thing you should do is read the error. Oftentimes, for syntax and runtime errors the IDE will print an error message out to la consola. See what line or lines it points to- since those will be the lines in which
54:59
the error occurred- and see if you can understand and fix what it says the problem is. Si el error isn't clear, or you've never heard of it, then try googling it, there are many websites out there such as stackoverflow which serve as forums to ask and answer problems con código Chances are, if you've had a problem, someone else has had the same issue y es probable que haya una solución probada. Generalmente, when a syntax or runtime error pops up, you should be able to find a fix for it fairly easily; sin embargo, como dije antes, el problema may arise from some loophole or oversight in the code you hadn't planned for beforehand. Maybe you did something as simple as multiply two variables instead of adding them. Estas son los errores lógicos de los que hablamos anteriormente. Estos problemas generalmente no tendrán texto rojo aparece para explicarte lo que salió mal. Tendrás que resolverlo tú mismo. Now there are a few different strategies you can use in order to track down and fix a logic error. First, you can use print statements and the console in order to determine where the code is going wrong. Imagine you have a conditional statement that will run one segment of code if an integer
56:00
x, is greater than 5, and will run another segment of code if not. If, in your program, x is supposed to be greater than 5 when the program reaches this conditional but for some reason the program is still printing out “X is small” you could use a print declaración para ayudar. For this problem specifically you could place said print statement before the branch of the conditional that would print the value of x. Ahora cuando ejecutas el programa sabes exactamente lo que la computadora está pensando. Printing out the value of x just before the if/else statement will let you know if the variable has the value you want it to have, and if it doesn't you know that somewhere above that conditional something went wrong and x was set to a value you didn't want it a. En este caso, x es igual a 2, que es por qué x es pequeño se está imprimiendo. Now we know what the problem is we can track down where and when in the code we modify x para resolver el problema. Use print statements to determine where your program goes wrong, and then try to track down the cause of these issues and solve them. Si usas esta estrategia, make sure you end up deleting the print statements afterwards to avoid clutter in the console.
57:00
The situation described above could also be solved using a breakpoint. Un punto de interrupción se detiene your program when the line you placed the breakpoint at is reached in your program. If, say, you would like the program to run through a certain conditional and set a variable based on that conditional, but you are unsure if this actually happens correctly in your code, you can place a breakpoint inside the conditional path you want to run. Upon the breakpoint being reached, the program will pause, and wait for you to continue it a través de un botón presione. This signals that the spot in the code where the breakpoint was placed, in this case the correct conditional path, has been reached by the program. usted can then continue the program knowing that was or wasn't where an error in your code ocurrió. Breakpoints can be used in conjunction with print statements in order to both pause the program, and perhaps view the values of your variables at the moment in time to give usted mismo toda la información que pueda desear. También puede tener múltiples puntos de interrupción para help slowly work through your program and determine where the error has occurred. UNA combination of these two strategies will help you easily determine where in your code you Han incurrido en un error lógico.
58:01
Next, let's go over what to do if you think you have tracked down the section of code Eso causa el problema. You may think you should delete it, but it's likely you put it there for a reason, and you don't want to lose that work if you don't have to. En primer lugar, intenta comentarlo. Comments are used to markup code and explain their surrounding secciones, pero también se pueden usar para depurar. Todo lo que se designe como comentario será not be read by the program as code, and will be skipped over. Esencialmente, se convierte en algo. that is only there for YOU the programmer leer. The syntax varies from language to language, but it usually involves placing some symbols before or around the code you would like to be commented. Examples of how to comment in different languages can be seen en la pantalla ahora. Also, when you comment something, the IDE will grayscale the line of code, making it extremely easy to determine what's commented and what is not. Comentando code 'deletes' it in the computer's eyes without actually deleting it. Si un problema is present before you comment a section of code but it is gone afterward, then that section de código es el culpable. If you comment part of a code out and there are still issues,
59:04
then move onto another section until you find the culprit. Una vez que lo hagas, puedes modificarlo until it works as intended or delete it entirely and you will have a fully functioning program Una vez más. ¡Hurra! Now that we've talked about what to do IF you've encountered an error and a strategy on how to find and fix it, I'd like to talk about some strategies you can use to AVOID errores en primer lugar. Firstly, backup your code frequently. En caso de que code completely bugging out and you being unable to fix it, you will want the ability to revert to a previous version where the code was still working. Si ahorras con frecuencia enough, then you will probably not lose too much work. Administradores de versiones como Github o Subversion can help with this, as they backup code to an online cloud service in which you can easily pull previous versions of the program en cualquier punto. Also, on top of saving, run your program frequently to ensure that the current version works as destinado a. This accomplishes two things. primero of all, it prevents you from saving a backup Eso no funciona. Secondly, if you encounter a problem, it will be easier to find if you have only made a small number of changes since the last time you ran it and it worked, and
01:00:07
thus you will only have to look through the new code for problems. Si has gastado 5 hours coding and hadn't run it during that time period, it's going to be extremely likely that at some point during that 5 hour code sesh you messed up, and it's going to be even harder to figure out where you went wrong. Errores, aunque molestos y extremadamente frustrating, are a fundamental part of making you a better programmer. Alright, now that we've covered errors for a bit, let's hop on back to programming statements and talk about one of the most important concepts in computer science, the función. Now, you may not know it, but we've actually been talking about a few functions this entire serie. Print statements, for loops, and even basic math operations are all examples of functions, which of course begs the question of what actually defines a function. Bien, a function is a segment of code that can be easily run “calling” the function name and depending on the type of function, will do something in return. Functions can be called numerosas veces y en numerosos lugares. Esencialmente they are like wrapping up a segment of code en un bonito regalo y darle un nombre que; cuando se le llame, desenvolverá el presente e irá
01:01:12
a través del código que envuelto. For example, the print statements we have been using this series allow us to print something a la consola cada vez que queramos son funciones. Usted ve, simplemente "llamamos" a la función de impresión and enter in what we want to be printed to the console, and the computer does it for nosotros. Behind the scenes, there is actually even more complex code that is in charge of taking your text and translating it to the console para ser impreso Los desarrolladores de casi todos programming languages realize that you don't want to program something that manually has to print something to the console through the use of complex programming, and so they implemented the print statement to reduce the stress and complexity of code on the user, abstrayéndolo a una simple línea de código. Todo ese código que se usa para imprimir algo to the console is wrapped up like a present and given to us in the form of one line, “print()”. This is actually the main theme of all functions and the backbone of any good program. A menudo in your program there are going to be sections of code which are repeated and serve the same
01:02:15
purpose, or equations which you want to allow differing inputs of. Y entonces puedes usar funciones in order to condense these down into singular lines of code to save both time and reduce desorden en su código. As you will see soon, functions are EXTREMELY powerful and will definitely be something you utilize all the time in your computer science journey. The print statement is just one example of functions in everyday code. Hay miles of functions that are available to you through IDE's. Sin embargo; porque no siempre use all of the thousands of functions that are open to you in a single program you have to import these functions from packages found in the IDE, which is something we will cover mas tarde. Now, there are four main types of functions in most programming languages, and they are separated by two defining features: whether or not they take in arguments, and whether o no devuelven valores. Empecemos por separating them by whether or not they take arguments, but first we have to cover what arguments are. Arguments are essentially variables that we pass into the function in order to be manipulated
01:03:18
and then either returned back to us, printed to the console, or used in another operation. Think of functions with arguments like ordering food at a restaurant. Si caminaste hasta your local five guys and told them you wanted to get food without supplying a type of food, they would probably look at you confused. Necesitas decirles exactamente lo que quieres ordenar para que te lo puedan dar. En este caso, conseguir comida es la función and what you order is being passed in as the argument. Basado en lo que les dices, o El argumento es que harán algo diferente. También debe tener en cuenta que el argumento puede be many different things, it could be fries, burgers, soda, anything really on the menu, y tal es el caso con los argumentos en la programación. This is essentially what happens with the computer, for example, the max function which takes two integers as arguments and returns the maximum number between the two. Ahora para
01:04:20
this function if you don't input two numbers or variables for it to compare, it's going to throw you an error just like the five guys employee, he doesn't know what you want to eat since you didn't provide him any arguments, and the computer doesn't know what two numbers you want it to compare and return since you didn't provide it with Dos enteros. Arguments are a way for programmers to have one function that can do many different things depending on whichever variables can be passed through. Los argumentos agregan variabilidad to programming and can help diversify your código. Pensando en el ejemplo de nuestros cinco chicos, a restaurant that only allows one type of food to be made regardless of what you order isn't going to be very useful or diversified, but if we're able to pass in arguments and tell them what food we want, our experience can be heightened and more options become available, which is exactly what happens when you accept arguments in your functions. Now that we've talked about functions that take in arguments, let's move on to functions which do not take in arguments, because functions can also be created and used without taking
01:05:20
en argumentos y aun así ser increíblemente útil. Por ejemplo, digamos que estabas haciendo un text based RPG game and one of the options you give your player is the ability to view their stats at various points throughout the juego. Ahora cada vez que te encuentras con una opción and they choose the “View Stats” button, you don't want to have to type out 6 different print statements for every statistic they may have, your code would get cluttered and desordenado muy rápido. Instead, what you could do is package the 6 different print statements en una función simple llamada printStats (). No necesita pasar ningún argumento a the functions since the function will do the same thing no matter what the statistics on the player are. Now, everytime the user wants to view their stats, you simply call the printStats() function and voila, the user's stats are printed for them to view. Esto te permite to save a lot of time writing out code, but also a lot of space which is extremely important when your programs begin getting into hundreds and thousands of lines and you want to easily busca a través de él.
01:06:21
Okay, now that we've separated functions into those that take arguments and those that do not, let's again split these up into those that return values and those that don't. Now the thing you have to understand is that when you're making your own functions, which is something we will be covering soon, you have to choose what your function will return, en todo caso Functions are able to return values back to the user whether they be String variables, integer variables, or even arrays. Ahora lo que hay que tener en cuenta sobre el regreso values is that calling the function alone won't do anything. Tienes que devolver el valor en algo. As an example, the Max function we talked about previously would return an integer, but in order to do something with it we would have to either set a new integer variable equal to the result of that Max function, or we can print out the result of a function, which in this case would just print out the maximum value between the two enteros Using functions which return values don't do much on their own, you have to
01:07:24
pair it with something in order to gain use fuera de el. Let's do another example, let's say you had created a function which took in two string variables as arguments, combined them using that fancy String math we talked about earlier, y luego los devolvió como una sola cadena. Esta función combineString podría entonces ser used to create new String variables since what it is returning is technically a string. The variable would simply be set to whatever is returned from the combineString. The last type of function is one that does not return anything, and these are known as Funciones "nulas". Oftentimes these are like the printStats function we created earlier, simply used to condense large amounts of print statements that appear often in your code. These cannot be set to variables since they don't return anything and just get the code dentro de ellos atraviesan. Ahí lo tienes, los 4 tipos de funciones. Los que toman argumentos y devuelven cosas, ones that take in arguments and don't return something, ones that don't take in arguments
01:08:27
but still return values, and the ones that take in arguments and don't return anything. Each of these 4 types of functions are useful and unique in their own way and you will probably find yourself using them all throughout your programming journey, so get used to the different types of functions and know how to make the most of them, as they are all extremely powerful. Finally, I'd like to talk about one of the major benefits of functions, which is that it makes it super useful to make large changes to your code without having to go through todo el programa Each function call is just a copy of that function's original code, and so it's very easy to make changes to the function and have it translate to across tu codigo. Let's go back to our printStats() function and say that you wanted to go back and add in a new stat that the player can level up through experience in the game. Sin functions, you would have to go back into your code, find every instance that you had printed out the users stats, and create another print statement to display the new statistic. However, if you had created a printStats() function like we did a little while ago, all
01:09:31
you would need to do is find where you defined that function and add in a print statement which displays the new statistic and you're done, bam. Ahora, cada lugar que había llamado the printStats function previously will now also print the new statistic as well. usted can see how powerful functions can be if used properly, and we haven't even scratched La superficie todavía. Now, up next we're going to cover how we can import other people's functions that los escribieron y los usaron en nuestro código. Now before we get technical, close your eyes and imagine you are trying to build a house. Sure, you could grow your own trees, chop down your own wood, make your own tools and clavos, y construirlo desde cero. Pero por qué do that, when you can simply go to your local Home Depot and buy these materials that others have already made ready for you. Eso es the main idea behind importing functions into tu codigo. Importar funciones te permite to gain access to libraries of functions that other people have already made for you. Esta es tan útil como parece. Existen so many functions that are super useful for any given program that it would take you forever to write them all yourself. Por suerte, otro
01:10:36
people have already done most of this for tú. In each programming language, you are able to use an import statement to import libraries of functions into your program that you can use as you write it. A library is simply a collection of functions that all have the same theme. Puede ser un math library, a data analysis library, a library which translates text, or anything that you se me ocurre realmente. There is such a variety of libraries for any given language that most functions you require that are not hyper-specific to your program can likely be found in some biblioteca. In fact, a good portion of any programmer's job is looking online for packages which can make his or her job easier instead of handwriting funciones Ahora, puedo oírte decir: "Guau, eso está enfermo, ¿cómo lo hago? Bueno es quite simple: an import statement. In most languages, an import statement consists of 3 parts. The library you would like to import from, the package you would like to import from that library, and then which class de ese paquete que le gustaría usar. por example, we could load up the Java library,
01:11:38
and from there import the util package, short for utilities, and then from that utilities package import the scanner class, a class which allows us to read information from the user. A package is simply a smaller sect of functions and methods to help differentiate between the thousands of methods contained in a library, and class is even more specialized que eso. Now if you don't know what specific classes you're going to want to pull methods from, you can use a star * to import all classes within the package you'd like. Sin embargo, it can be beneficial to be more specific, and only import the classes you would like, as it helps with efficiency of the program a la larga. Por ejemplo, en python, the syntax to import a library is import followed by the library name. Sin embargo, importando un entire library is more computationally taxing than importing specific functions from a library. Imagine you would only be using the factorial function from the python math library. It would be a waste of computing power to import the entire library, and would increase
01:12:39
El tiempo de carga de su programa. For smaller programs, this isn't a big deal, but it really starts to add up when dealing with larger projects. Por lo tanto, en su lugar use “from math import factorial” or the java equivalent “import java.math.factorial”, and now have access to that one math command solamente. This limits the functions that you can uso, sin embargo, ahorra tiempo de ejecución de programación. Si decides que quieres usar otra función that you hadn't planned for, you can always go back and import that too. Muchas veces si you try to use a function from a common package and you have not yet imported it yet, the IDE le pedirá que lo haga. If you're trying to figure out which libraries you want to import, think of the functions vas a necesitar en tu programa. Perform a simple google search, and you will probably run into a package or library that already exists in your IDE that you can use. Y si you can't, there are ways to download and import additional projects to fit your needs. But if after all of that you still can't find a library that contains the function ¿Estás buscando? Well that's a perfect segway into what we're going to talk about
01:13:42
next, which is the basic structure for writing your own functions. So at this point we've talked about both what functions are and how we can get some very useful functions by importing functions through packages. But there are definitely going to be moments in your programming journey where you're going to want to make your own functions because you want to make one specific to your program and code. Por suerte, making your own functions is extremely simple, there are just some basic rules I want to cubrir. Now while we've previously used making functions as an example for other topics such as the playerStats function from a little bit ago, they were extremely abstract and didn't go in depth into what is needed for an actual function to operate. Así que ahora we're going to be covering a skeletal system of everything that needs to be included in una función para que funcione. Now think back to the 4 different types of functions that we talked about previously. Functions that do and don't return values and functions that both do and don't take en argumentos For creating your own functions, we're just going to go down the list and talk about how to approach creating them, starting with the most basic of the bunch,
01:14:47
one which takes no arguments and returns no values, but before we start that, there are a few small things I want to note about function naming conventions. Las convenciones de nomenclatura variable we talked about previously also translate over to function names. Entonces no puedes tener two word functions and you can't use special characters like periods or commas. Generalmente you're going to want to follow the same camelCase style which we talked about in the Variables de video. Alright, so in general for making functions, each language differentiates how you tell la computadora que es una función. In java you have to define the functions scope, which is something you don't really need to know unless you're going to become more invested in java, but basically it tells the computer which parts of code can use the function and qué tipo no puede. For this series all of our functions are going to be public. Desde there you then determine which type of function it is, so in this case since it won't be
01:15:48
returning any variables we'll just put void to signify this type of function will not Estaré devolviendo cualquier cosa. Finally, you put the function name after those two identifiers along with a set of parentheses after it like entonces. Los paréntesis son donde tus argumentos would go if you were making a function that took in arguments, but since for our first type of function we're not incorporating arguments into this function, let's just leave que en blanco Todo eso es solo para Java; Python por otro lado todo lo que haces es poner def, short for define, and then the function name with a set of parenthesis. Así como tú can see, each language is going to be different, but the main thing we want to remember is para agregar siempre paréntesis. From there, we just type what we want our void function to do within the confines of the function and then close off the loop and we're done, pan comido. In Java, the confines of the loop would be whatever is contained within the curly brackets, and in python it would be until you are no longer indented. En su centro, this is the most primitive type of function we've just made. Algo que toma
01:16:51
no arguments and returns no values, quite similar to the printStats function from earlier en. Moving on to the next type of function, creating a void function that takes in arguments. Ahora this process is going to seem very similar to the previous except for one small adjustment. Remember the parenthesis that I mentioned like 30 seconds ago, well we put any variables we want the user to pass into the function into these parenthesis, and then when we “call” that specific function, it will be required to have those variables passed into it. por example, in Java, let's make a function that takes in 2 numbers and prints out the producto de esos números. Comenzamos con el public void plus name of function setup since de nuevo, no devolveremos ningún valor. Y ahora viene la nueva parte. Dentro del paréntesis, you define which type of variables you want to pass in as arguments, in this case an integer, y luego un nombre para esa variable. Este nombre is what you will use to refer to the integer the user passed in. For this example let's just call it num1. Entonces si queremos agregar
01:17:54
another argument, we simply add a comma in between the two and we can make another integer variable num2 para contener el segundo número. Nosotros could do this for however many variables we want to pass into the function, but for now let's close off the parenthesis and just imprime el producto de num1 y num2. Como tu can see, we refer to the two numbers the user ingresará a la función como num1 y num2. Now, whenever we want to call the multiplyNumbers function, we just have to make sure that we are putting 2 numbers in as arguments. En this case the number 5 becomes num1, and the el número 8 se convierte en num2. From there we simply run the code and the number 40 is printed a la consola Es importante tener en cuenta que you can also mix and match variables when haciendo argumentos So you can have someFunction which takes in a char, an integer, and two cadenas de todo dentro de una función. Pretty neat en mi opinión. Lo último que quiero mencionar
01:18:54
about arguments is that when you call a function you have to follow the variables you defined Al hacer la función. So for our multiplyNumbers function you couldn't put in a string and entonces un int. It HAS to be two integers because that's what the computer is expecting to ser pasado a la función. So now that we've gone over how to make functions that don't return variables, we have to cover those that do, and we'll start with ones that don't take in arguments. Now the main difference between defining functions that return variables and defining ones that do not is that in some cases you have to specify that you want this function to return an integer variable, this is most commonly used in Java, where you would replace “void” with “int” to tell the computer that you want this function to give something back to you in the form of an integer. This works the same as if you wanted to return a string, char, or even an formación. You simply replace the word after public with whatever variable you want to be returned por la función The most important thing to remember about making functions that return variables is
01:19:55
that no matter what path your code takes, it MUST return a variable NO MATTER WHAT. ¿Qué significa esto? Well let's say you had some String function in a game and inside of it there was an if statement where if the player score was above a 10, you returned Un mensaje de felicitación. This works fine if you print the result of this function and the player's score is above 10. But, if the playerScore was less than 10 then you don't enter the if statement and then you don't have something prepared to be returned to the user and so the function is going to throw you an error. Tienes que tener todos tus paths covered which may seem simple, but if you're making a function with a switch statement in it containing high amounts of cases, this can get out of hand quickly. Algo que me gusta to do just to make sure this doesn't happen is put a return statement at the bottom of the function with a string or an integer so unique that I'm able to tell that the code no funciona correctamente y puede solucionarlo. los main point I'm trying to get across however,
01:20:57
is always cover your exits and always have a return statement prepared for any case the El usuario puede tirarle. Another small thing to note is that you can't return one type of variable if you have already definió la función para devolver otro tipo. Por ejemplo, no puede devolver una cadena en una función entera o viceversa. El regreso statement must always match the type of function no importa qué. The final type of function is one that returns variables and also takes in arguments, and for these all you need to do is combine what we've learned from the previous cases. Primero, you assign your arguments in between the parenthesis, making sure you have also defined what variable you want to return, and then ensure that no matter what path the code takes that you are siempre devolviendo ese tipo de variable. Ese concludes our discussion on functions. Como you can probably tell, functions are an extremely vast subject area and require a little bit of practice to fully understand, which is why later on we'll recommend some websites you can use to practice these more difficult temas
01:21:58
Now I'd like to switch gears a little bit and continue our discussion from earlier on matrices Arrays, while useful, aren't the only way to store and manipulate information. In fact, there are a multitude of different ways to store data in computer science including LinkedLists, Stacks, Queue's, Maps, Trees, and many others too. Ahora mismo; though, I'd like to talk about 2 cool, wacky and zany ways to store data that we haven't previously covered: ArrayLists and dictionaries. Pero antes de entrar en eso, let's get a little review/reinforcement of array's. As you may remember, arrays are basically lists of values that are stored together. When you initialize an array, you give it a size, and this size is fixed. No lo harás be able to increase the size of the array, so when you make an array, it's length is final. To access the values in an array, you reference them using an index which starts at 0. What this means is that the first item of an array is not at position 1, it is at
01:23:00
position 0, and it's position is commonly referred to as it's index location. Entonces, to find the nth item in an array, you would refer to it as index location [n-1]. Sin embargo, as the size of an array is fixed, you have to be careful to not reference a position that is beyond the total size of the array, or append too many items to it, as this will devolver un error We also have what are known as two-dimensional arrays, which is an array containing an array at each of its indexes. O podrías tener una matriz containing arrays containing arrays containing arrays containing arrays, depending one what estás tratando de hacer Multidimensional arrays can be useful in more advanced programs for organizando un amplio volumen de valores relacionados. Si eso es confuso, pase de nuevo a earlier for our full discussion on Array's, the time-stamp will be in the description. Now that we've reviewed array's, let's go over array lists. Listas de matrices (o simplemente lists, in Python) can be thought of as a growing formación. Earlier, we mentioned how you have to be careful to set an appropriate size of your array and
01:24:01
make sure to only reference and append values such that you remain within the size of the formación. However, with array lists, this isn't un problema. Después de inicializar un arrayList, it instinctively has a size of 10, but if you append a values such that the size of the arrayList goes beyond 10 elements, an arrayList will “grow” itself, meaning that the computer will allocate more memory to the array to increase its total size so que los nuevos valores se pueden agregar. Esta is quite useful when you don't know the exact number of values that the array will need to store, or want the ability to store values to your heart's content, such as making a database with an unknown amount of usuario que se registrará. There is a lot more to uncover when regarding arrayLists, but for this surface-level series, that is all you pretty much need to know, so let's move on to dictionaries. Now when we talk about dictionaries, we're not referencing that thick book you probably have lying around your house which has thousands of definitions. En informática, diccionarios are like arrays, in that they store multiple values, however their values are stored very
01:25:02
diferentemente. Rather than being referenced by their position within the dictionary linearly, each value is tied to another value that is used to reference it, or its “key”. Porque of this, we need to throw away all conceptions of dictionaries as a linear way of looking at data, since in actuality it is much more fluid and interchanging. Básicamente decimos that each position in a dictionary holds a key/value pair. Al hacer referencia a un valor en a dictionary, you will use it's unique key, and the dictionary will tell you the value eso está atado a eso. Think of it like this, each time you add an item to your dictionary, your computer creates a handcrafted box to store the data, and also custom-makes a jeweled key, one of a kind, no other like it in the mundo. De esta manera, solo hay una clave que goes to the box that stores a certain bit de información. Debido a que cada clave debe ser única, reusing a key in a dictionary will result in an error being thrown because having two keys that are exactly the same would confuse the computer as to what box, or bit of information, esa clave lleva a. However, you can store the same value in multiple key/value pairs,
01:26:05
ya que las llaves serían todas diferentes. Now like I said, dictionaries are more fluid, making them easier to organize than arrays, as everything is set up in a more logical conducta. Es decir, es más fácil de encontrar. the value you are looking for when you are using keys rather than simply referencing sus posiciones Déjame explicarte lo que quiero decir. Imagine que tiene un diccionario de precios en a store where the key is the name of the product and the value is the price of the item. Tal vez apples cost 1 dollars, milk costs 2 dollars, and bread costs 3 dollars. Puedes ver eso in the dictionary, each key is the name of a product, and each key corresponds to the precio de cada producto. So to find the price of bread, all you need to do is simply call the dictionary using the key “bread”, and the dictionary would return the value 1. This makes it extremely easy to track values through your code since you're working with tangible values rather than numbers which don't mean anything to you. You can also manipulate dictionaries in many the same ways you can manipulate arrays and listas de matrices. You can iterate through a dictionary and perform many operations and comparisons en los valores. If you want to find the product with the highest price, for example, you can
01:27:09
iterate through the dictionary to find the value that is the highest amongst the grocery almacenar artículos Arrays, arraylists, and dictionaries are useful in their own right, as are the mass amounts of other ways to store data, and each boast certain advantages over one another. Nosotros ya covered the basics of 3, but since there are so many, we don't have time to go in-depth into each and every one of them, and so in order to help you grasp the basics of storing information, we're now going to talk about one of the most important functions needed to understand arrays, which are searching algoritmos Now, just as there are many ways to store information in computer science, there are incluso más formas de buscar en las listas. Los algoritmos de búsqueda en su núcleo son formas in which we can look through a list of values stored in an array, say a patient name list or a high score list, and find a particular pieza de datos. El objetivo de un algoritmo de búsqueda. is to simply give the algorithm a string or object you want it to find and return the index of the array that contains that string or object as fast as possible. Ahora esto puede seem simple, but lots of software runs on the backbone of being able to search through
01:28:11
lists extremely quickly, making searching algorithms, and in particular efficient searching algoritmos, un tema importante a cubrir. Adicionalmente, this is the main functionality that arrays are used for and is the backbone of many of the methods used with arrayLists as well as many other storage methods, so knowing them will take you a very long way. Typically searching algorithms are used to return the index of a particular data point so that it can be used, modified, updated or checked on. Por ejemplo, si estás a punto to check into a hospital run on an array system for patients, the staff must search for your name in the database and by returning the index of where your name is, they now have a quantifiable number that they can use to easily check you in, rent out prescriptions, schedule you for checkups, update your personal information, etc. without having to search a través de la lista para su nombre cada vez. You may think that there is little difference between searching algorithms, since computers nowadays can perform millions of calculations per second, but when you're a huge multi-billion
01:29:12
dollar corporation trying to find a certain data point in a list containing thousands or even millions of data points, small differences in efficiency are going to make or break the experiencia de usuario. Even a 1% improvement in efficiency can mean big differences in the amount of time a user is waiting for a simple tarea. Now before we jump into different types of searching algorithms, we must discern between the two states that arrays or lists can be in, either sorted or unsorted. Una lista ordenada of information is characterized by some sort of rankable value, whether that be a patient ID, credit card number, or even by alphabetical values like username's or legal names. Un unsorted list is just some random assortment of related information, not sorted by any orden particular o razón. Some searching algorithms only work for sorted lists, usually the more efficient ones, and some work for both sorted and unsorted lists, although these son generalmente menos eficientes. If you end up pursuing computer science further, you will have to deal with both sorted and unsorted lists, so it's good to know common searching
01:30:16
prácticas para ambos Another thing to note is that we determine the efficiency of a searching algorithm based on both the worst case scenario and the average number of items it must search. A esto le llamamos Big O notation, in which each searching algorithm has an equation which takes in the size of the array as an integer n, and will output an worst-case scenario efficiency value that we can use to compare with other searching algoritmos También podemos ver cuánto tiempo; on average, it takes to find an element in a list. El uso de estos dos métodos nos permite to easily compare how efficient two algorithms son. Bien, ahora que tenemos algunos antecedentes en la búsqueda, vamos directamente a ello. The first type of search we'll be talking about is called a linear search and you've honestly probably used this multiple times throughout your life. Cada vez que tienes to search for your name on a list of people you probably follow the same pattern. usted start at the top, check to see if the first name on the list is yours, if it is. Excelente. If not, you move on to the next name on the list until either you find your name, or you
01:31:18
no, en cuyo caso te vas. A linear search works the same way, you start with the first element in the list, compare it to the value that you're trying to find, and if they're the same you've found your match and return the index of that element, and if not you move on to the next element in the list until you either find the thing you're searching for or you run out of list verificar. Parece bastante simple ¿verdad? Esta is because linear searches are pretty bad when it comes to efficiency, especially in El peor de los casos. If the item you're searching for in the list is the last element, you're going to have to check the entire list of items before you find the one you're buscando. De media; however, you're going to get it about halfway through the lista. This makes the linear search O(n) worst-case scenario, since in the worst possible case it will take the entire length of the array, or n, to find the correct value. El lineal search on average will return the correct index in O(n/2) or halfway through the list. The linear search is great; however, since it can work with both sorted and unsorted
01:32:19
lists, because of the fact that it will eventually cover every element in the list. El otro search we'll cover requires the list to be sorted which may seem like a drawback, but having a sorted list allows you to use algorithms that are far more efficient than La búsqueda lineal. So overall, the linear search is a good basic searching algorithm for if you have an unsorted list, but if your list is sorted, there are way more efficient options out there for you, such as the binary search which we'll be talking about now. The binary search uses a recursive process to break the data in your list down into more and more manageable bytes, taking advantage of the fact that it's sorted, in order to encuentra el artículo que estás buscando más rápido. Este es mucho más difícil de entender alrededor, así que comencemos con un ejemplo. Vamos say you have a list of 10 names sorted alphabetically, like shown on the screen now, and you wanted to find your name within that list. En binario search you would first look for the middle-most name, in this case the one at the 4th index. Just a quick aside, since there is no “true” middle, the computer automatically uses the
01:33:24
el siguiente hacia abajo como el valor "medio". Ahora, once you find your middle value, you first check to see if the name you're searching for at the index you've chosen, if it is you simply return that index, but 99.9% of the time it's not including right now, so Avancemos. If the value at the middle index is NOT equal to the one you're searching for, you check to see if the value you're searching comes before or after the middle índice. Por ejemplo, si estabas buscando the name Brendan and the value at the middle el índice era Carl; Brendan obviously comes before matthew alphabetically and since we know the list is sorted, what we can do now is ignore the entire bottom half of the list and just focus on the top, since we know that if Brendan is even in the list, it's going to be in esa mitad superior Now, we simply treat the top half of the list as an entirely new entity y repita el proceso nuevamente. De nuevo, we would find the middle-most element of this
01:34:26
new list of names and again compare it to the name you're trying to find. Si es the name we're trying to find, we return that index, but if not we compare to see if Viene antes o después del índice medio. Volviendo a nuestro ejemplo, digamos el El índice medio de esta nueva lista es AJ. Ahora, we know that Brendan comes AFTER AJ alphabetically so we can now ignore the top half of the list since we know that Brendan is going to be en la parte superior de nuestra lista. Now we repeat this process again and again until we find the nombre que estamos buscando So for our example, the middle index this time is Brendan, and that's what we're searching for so we finally would return index 2. In binary search, eventually the index we compare to our search term will be the same and once it is, we can devolver el índice y seguir adelante. Now if we don't find it, which happens after we have eliminated the entirety of the list without finding our search term, the algorithm will simply return a null value to let you know that the item you're searching for cannot be found in
01:35:27
la lista. The binary search is way faster and more efficient than the linear search since we are drastically cutting down the amount of elements we have to look at, making El programa corre más rápido. In almost 99.9% of cases in which your list is sorted, the binary search is going to return a result faster than the linear search, so if you have a sorted lista, su mejor opción es ir binario. Como for efficiency, the binary search is O(log n) for the worst case scenario which can be confusing if you don't fully understand logarithms, but all you need to know is that it is way more efficient than the linear search. It's average scenario is actually also O(log n) as well, which again is infinitely times Más eficiente que lineal. Now, while there are other types of searching algorithms you can use, these two are the most common for both unsorted and sorted lists, so we will stop there for now. A continuación, estamos going to be covering one of the most confusing and important topics in computer science,
01:36:28
recursividad Let's start with the most important question: what exactly does recursion mean? En programación, recursion refers to functions that repeatedly call themselves. Es decir, que en las instrucciones that occur within a function, one of the instructions will be a call to that same function you're already in.In the extremely primitive example on your screen now, you can see we have some function which, in the confines of itself, calls itself. Una función recursiva generalmente take into account some integer as an argument, and will use this to carry out some instructions, modifying the integer that was entered, before calling itself again with that new integer como argumento To better understand these functions, let's discuss the basics of how we go about programming one of these recursive functions and create one ourselves. Un muy buen ejemplo fácil of a recursive function is one which sums all numbers from 1 to n, so let's make a función recursiva que hace justamente eso. los first thing we need is the actual function, and we're going to make it an integer function which takes in an integer n as an argument. The reason we do this will be explained later but for now let's move on to the base case.
01:37:31
A base case is simply a definite value which all recursive statements, the ones that are being repeatedly called as we go through the function, try to get towards. Al principio of the function, we test the value that was passed in by the argument against the base caso para ver si está satisfecho. Usually, these base cases are some requirements, like if n, as I described before, reaches a certain value or is equal to a certain value. It is extremely important that the base case is set to some requirement that n will eventually meet for the same reason that it is important to avoid infinite loop: we do not want a stack error de desbordamiento a ocurrir. For example, if our base case was to stop calling the recursive function when n was greater than 100, and if it is not, we call the function again but with n-1, and we started with n as 99, we would never reach the base case and the recursive function will repeatedly call itself over and over and over again, subtracting 1 from n and hoping that somehow it will eventually be greater than 100 until your computer crashes,
01:38:32
no es divertido. So anyways back to our recursive sum example, let's make our base case when n is less than or equal to 1. This way, we can start at some positive integer n and subtract from it until it hits at or equal 1, in which case we can exit the recursive declaración. Frio. Now, if n is not less than or equal to 1, what we want to do is return the SUM of both n and then the returning value of our recursiveSum method minus 1. Why do agregamos n + la llamada a la función? Bueno vamos actually go through the function as if we fueron la computadora y ver por qué. We start with a call of recursiveSum with n = 3. We know that 3 is not less than or equal to 1 so now we try to return a recursive sum of n (which is 3) and the returning value of recursiveSum with an n of 2. We don't KNOW what the returning value of recursiveSum with an n of 2 is so we have
01:39:32
to go through the function again, only this time n is 2.Again n is not less than or equal to 1, and so this function will go into the else statement and return…2 plus ANOTHER recursive statement, in this case the returning value of recursiveSum with an n of 1. So once again we have to go through the recursiveSum function to get the value that will be added to 2 and then returned and added to 3 and then returned. Aguanta, estamos cerca. Now in this function, n IS less than or equal to 1 and so we return n, which is 1. Now we take that n, which is 1, and that is what gets added to 2 in the previous function call and then returned, so this would return 3. Now this 3 is what gets added to the first function call, which is three, and so it becomes three plus three which is 6. And FINALLY after
01:40:33
all that time, we get 6 returned from the función. Que, si has estado siguiendo along at home, 3 + 2 + 1 is indeed 6. Now this may seem like a waste of time since 1 + 2 +3 no es una operación difícil. But to those of you saying that I ask you to please give me la suma de todos los números del 1 al 3,567. Buena suerte. Ahora la recursión es MUY difícil concept to wrap your head around, so if you're not 100% comfortable with it at the moment, please rewatch this section of the lecture to better familiarize yourself with it. Alright cool, now that we have a little background on recursion, let's talk about why it works muy bien. Now to understand why and how recursion works, we must first understand what a stack es. A stack is a data structure that contains all of the tasks you instruct your program completar. Based on a certain method, your program will then carry out the tasks you darle. It's called a stack because if we call start another process before the previous one completes,
01:41:35
the process is “stacked” on top of the other one such as the animation on your screen se muestra ahora. Los programas que escribimos seguirán la estructura LIFO. For those unfamiliar with accounting, LIFO means last in first out, or the last item put on the stack will be the first one removed de eso. Esencialmente, cada vez que le preguntas a tu computer to complete a task, that task is added to the stack, and will be the first Uno para ser resuelto. Think of it like a stack of stones, you can keep adding stones on top of your pile, but in order to get to one near the bottom, you first have to remove all the rocas encima de ella. Now when your function continually calls itself without end; sin a base case, like in our infinite loop example then the stack will never be resolved, as items will be continually added to the stack without any of them ever being completed. In this case, the memory allocated to the stack is exceeded, and a stack overflow error se produce, lo que provoca el bloqueo de su programa. Piensa en esto como si estuvieras haciendo tareas domésticas
01:42:38
and before you complete one chore, you get called to do another chore, and then before you can complete that one you get called to do another one. Since you keep stacking tasks or chores on top of each other, the stack of tasks will never be completed and you will probably die before ever finishing any of your chores. This is the same logic that makes infinite loops crash your program. Obras de recursión en estos mismos principios. The initial call makes a second call which is added to the stack, and now that one must be taken care of first, but in that one another function is called which gets added to the stack, and so on, until you reach the base case in which lentamente comienzas a bajar por la pila. In conclusion, recursion in general is extremely useful because by calling the same functions repeatedly it breaks down the problem into smaller sections, and results in the program siendo más eficiente Small parts of problems are easier to solve and less taxing to compute than the entire problem at once, and the computer can combine these small solutions into the
01:43:40
Solución principal al final. Now as we wind down our introduction to programming series, we want to take some time and go over some of the soft skills needed to be a successful computer scientist since it's not all about código escrito In fact, many professional computer scientists will tell you that the majority of their job is spent thinking about code rather than actually writing it. Esto es porque much of programming boils down to problem resolviendo ¿Cómo optimizamos este sistema, cómo ¿podemos hacer esta función para nuestra aplicación? Qué type of movement do we want for our game and ¿Cómo podemos programarlo? The harsh truth is that no good program has ever been written simply from the programmer getting the prompt or idea, sitting down, hopping on an IDE, and starting to write code. There are many tasks we should go through beforehand in order to plan out our code so we ensure that when the time comes to program, it's a clean and easy process, and not riddled with mistakes and bugs. This is where pseudocode entra en juego. Think of pseudocode like this, if you wanted to take a family trip to the grand canyon, would you simply hop in your car and drive off and figure things out later? No porque
01:44:42
eso sería ridículo. Instead, you would spend some time planning out the trip, what sitios o lugares que quieres visitar? Qué hotel reservations are you going to have to ¿hacer? What kind of things are you going to do when you get there? Qué rutas o autopistas vas a tomar y por qué? Todos estos things must be determined out before you can incluso piensa en saltar en tu Ford Explorer. Entonces, ¿cómo se traduce esto a pseudocódigo? Well, think of our family trip to the Grand Canyon as a program. Los programadores usan pseudocódigo, pseudo meaning not real, and code meaning, well, code, as a means to plan out their programs before they write them, just like how we planned our trip before going. Tiran sintaxis and naming conventions for variables and just focus on what they want the program to accomplish, y cómo planean hacer eso. Pseudocode is very similar to constructing an outline para un papel que estás escribiendo. You write down the main topics of the essay and plan out your major talking points, but you don't worry about the nitty gritty details of it all such as word choice, grammar conventions, and proper formatting. Al hacer esto, permitimos
01:45:43
ourselves to think freely and not worry about stressing the small stuff. Al menos no todavía. Alright, so now that we know WHAT pseudocode is, let's talk about HOW we write pseudocode. You see, the best part about pseudocode is that it can take the form of many different cosas para muchas personas diferentes. Each computer scientist probably has their own methodology for planning out their code, and since there are probably hundreds of different methods of writing pseudocode that are out there, today I'd like to focus on 3 popular ones that I think you might find to be extremely útil. The first of these are known as flowcharts, and mainly they can be used to think through El proceso de una función particular. A flowchart is fundamentally a graphical representation de una función y cómo podría fluir. Muchos programmers do this, and lay out the conditional statements and loops they want as different blocks in the flow chart, connected by arrows y trazando cada camino de su función. A partir de ahí, es extremadamente fácil crear test cases and follow them throughout the flow of the function through the different Bloques y flechas. For example, we could have a flowchart that goes something like this.
01:46:45
A user enters a number, and if this number is 8, I want the program to return True; sin embargo, if the number is not 8 then I want to return falso. Es una excelente manera de visualizar qué the function's overall purpose is and also look for any errors that you may have missed when thinking about the function, such as a missing path. También abstrae la programación. statements up to simple blocks, making it easier to modify or change completely. los best part is, that when you have finished testing cases you can simply convert the blocks into statements and you have a well-written function without any debugging. Another popular pseudocode technique that is used often is to simply write out what quieres que tu código lo haga cronológicamente. No pienses necesariamente en qué programación statements and functions you want to use, just jot down, from start to finish, what it is the program you are writing is going to do step by step. Por ejemplo, digamos you're making an app that takes in two numbers and divides them. El pseudocódigo para eso se vería un poco como esto. primero I want to prompt the user to enter a number,
01:47:48
then I want to wait for the user to input the first number. Después de obtener el primer número, I want to again prompt the user to input a second number. Una vez que lo hacen, completo el operation by dividing the two numbers entered and return the result back to the user. Esta all seems like it would be common sense, but remember that oftentimes we're not going to be working with simple multiplication functions, we may be working with full-scale games, algorithms, o interfaces de usuario con muchas opciones diferentes. Este método le permite al programador no get bogged down with the syntax and conventions you have to follow, you're simply making a note of what the program's ultimate goal should be, as if you were explaining it to un amigo tuyo. This method really lets you plan out everything that needs to happen en su programa para que funcione sin problemas. También asegura que no te olvides de un piece of an algorithm, or a certain function that you need to write in afterwards. And the final pseudocode strategy that I'd like to talk about today is writing out the main features you want the user to have when using your program, and what functions or
01:48:51
smaller programs you're going to need to complete those features. Hagamos otro example, say you're making a banking interface and on start-up, you want the user to initially Tiene 2 opciones diferentes. They can set up a new account or log into an existing account. From there, if they log into their account you then want them to have the functionality to withdraw money, deposit money, take out a loan, or pay back a loan. Si ellos deciden to set up a new account, you want them to be able to create an account, store their information in a database, and then access all of the features that a returning member tendría. This may look very similar to the flowchart, the only difference being this is abstracted one level higher, over an entire program rather than just a single function. If you really wanted to, you could also create a flowchart that would go through the functionality de los 4 métodos descritos anteriormente. Setting up the hierarchy like seen on your screen now makes it clear to see every function and interface you're going to have to make. This prevents you from having to try and shoehorn a function or feature into an almost finished
01:49:54
program at the last second is not a very fun experience in the slightest. So there you have it, 3 pseudocode strategies you can use to plan out your code before you incluso comenzar a escribir cualquiera. The flowchart method, which is good for thinking through the flow de una determinada función. The write-up method, which is good for getting the general idea down for a program, or the functionality planning method, good for listing out the functions of a certain program. You can use none of them, all of them, a mix of them, or even ignore estos y encuentre o cree el suyo propio. El objetivo principal aquí es minimizar drásticamente the amount of errors that occur during your programming and relieve a lot of stress on tu cabeza. The importance of pseudocode cannot be stressed enough, and if you don't believe me, I urge you to try and complete a large project without it. Ok, so if you've watched the series up until this point, you have gotten a pretty good understanding of many aspects of programming, and also how to plan out your programs. Ahora it's time to go out into the real world, and write some actual code.
01:50:56
¿Pero qué tipo de programa? I can hear you asking yo. Y la respuesta es realmente lo que quieras, De Verdad. As I'm sure you know by now, you can program just about anything that you have on your mind, anything from simple games to complex software. Te hemos equipado con the basics that are going to be used in pretty much any program you do decide to write. Pero that doesn't mean every programming language is perfect for every application. Cada idioma has its own strengths and weaknesses, and choosing the right one is very important for making it easier, or sometimes even just possible, for you to program what you want. Así que eso es what we are going to talk about now: choosing the best language for what you want to accomplish. Now, we talked earlier about low level versus high level programming languages. En caso te olvidaste, hagamos un repaso rápido. Los lenguajes de programación de nivel superior tienen un high level of abstraction from machine language, that series of 0's and 1's from way back when, while lower level programming languages have a low level of abstraction from machine idioma. For example, block programming where you drag and drop programming statements together
01:52:00
like 2d legos would be a high level language, as it does not take a high level of understanding of the inner workings of a computer to program eso. El nivel teórico más alto de una programación. language would be if I could just write down what I wanted the computer to do in simple Inglés y simplemente funcionaría. But, sadly, that doesn't exist yet. Por otro lado of the spectrum, the lowest level programming language would be just feeding 0's and 1's into the computer at supersonic speed, which would be almost impossible and extremely absurd. So, how do you choose what type of language is best for your needs? Bueno, depende de qué you are trying to do, as sometimes you need very specialized languages to get done what usted quiere. The world of computer science is vast and contains many fields, so trying to cover everything in one language would be imposible. Esto ha llevado a la creación de thousands of different programming languages each designed for a specific task. Ahora mismo though, we'll cover some of the most popular languages and their uses.
01:53:01
Now, if you are trying to design a website, and delve into that career path, using HTML y CSS es probablemente tu mejor apuesta. HTML is a markup language that is designed for writing the content of a website, while CSS is great for designing the style of the website. usted interact with HTML code every day and you can even see it right now if you right click and hit inspect element, this will truly show you how complex HTML and CSS can be. Maybe it would be best for you to use a scripting idioma. Un lenguaje de script es un lenguaje that has many commands for you to use and that can also be run without needing to be compilado Scripts can be faster to write than actual programs, and tend to be easier to port between operating systems allowing for cross-platform support. Los guiones también pueden ser used with websites, oftentimes adding to the overall user experience of the site. Si tu want to go into web design, this might also be a path for you to go down. Examples of scripting languages are Perl, PHP, Ajax, and Javascript. If you just want to make a general purpose program, you should probably use a general
01:54:03
lenguaje de propósito General purpose languages, as they sound, have a wide range of applications. Por lo general, estos deberían ser sus idiomas preferidos. Ejemplos de lenguajes de uso general son Java, C ++ y Python. They each have their own different benefits over one another. Java is best at developing games and interactive web pages, Python can act as a scripting language for web programming as well as writing applications and data analysis. Y C ++ es mejor para escribir aplicaciones y programas del sistema. They all have a variety of packages that you can import and use to achieve the functionality you need de ellos. Mientras selecciona el general correcto purpose language for your big projects is very important, for most of your programs cualquiera de ellos funcionará. It really comes down to preference. Conozca cada idioma and decide which one's syntax rules you like best and find most comfortable. Si tu get to know one general purpose language really well and enjoy programming with it, you can apply it to just about any of the programs you plan on writing. Personalmente, tiendo a
01:55:05
uso Python para la mayoría de mis proyectos. Esto es mostly not due to any functional difference between Python and any other general purpose language, though there are a decent amount, but it is mainly because I find its syntax rules most convenient and easiest to write programas con. Overall, either you can consider the project you plan on doing, and research and see which language boasts the most advantages for your purposes, or you can simply become comfortable with a language and use it for most of the projects you decide to write. We'll now be looking at our final topic of this introduction to programming mini-series. You now have the knowledge of basic programming which will take you far in any language you decide to learn, you know some good pre-programming pseudocode strategies to help you design your code from the ground up, and you might already have a good idea as to the type of programming language you might want to start with, so what's the next step? ¿Cómo puedo aprender eso? language and what applications can it be used ¿para? Bueno, eso es lo que vamos a ser. cubriendo ahora, así que saltemos directamente a eso.
01:56:05
Starting with the biggest question which is what's the next step. Bueno, ahora que tu might know which type of language you might be interested in, research that language and find out whether or not you truly want to pursue that programming language. La mayoría de los idiomas like python or C++ will have either an official website where you can read up on, or a wikipedia page which will provide you with useful information in deciding whether or not you want to pursue ese camino From there, the next step is to actually learn the language, which can be hecho aquí mismo en YouTube. While we have taught you the basics of any programming language, each specific language is going to expand upon the basic concepts and so watching tutorial videos on a certain language is going to be very beneficial. Muchos sitios web intentarán get you to purchase paid courses or take classes which cost money, but you can find extremely good courses here on YouTube for absolutely 0 cost to yourself. Yo comenzaría con un introduction series like the one you're currently watching, but for the language you have chosen and work your way through that series, picking up on the syntax and rules of that language until you become comfortable con eso. Una vez que haces eso, llegas a una encrucijada. Sabes programar en un idioma determinado, but you may be completely clueless as to what to make in that language. Programmer's block
01:57:08
can leave you uninspired and not want to continue programming so I'd like to give you a few sitios para ayudar. First is codingbat, a completely free website which has hundreds of coding challenges in Java and Python to help you refine your programming skills and even learn some programming short-cuts y consejos This is great if you want to get better at improving your efficiency and need algo para perfeccionar tus habilidades como desarrollador. El siguiente es CoderByte, que ofrece más de 200+ challenges that you can complete in over 10 different languages, something that is sure para ayudarte a mejorar. The final website I'd like to talk about is hackerRank, which not only provides programming challenges to keep you on your toes, but also provides support for using you programming skills to find jobs or internships, something you've probably definitely thought about if you are taking programming up as a skill. Estos y muchos more websites exist solely to keep you interested in code and work on refining your skills to become better, you just have to find them because they're certainly out there. Now if you're a teenager watching this series, I also encourage you to take the programming clases en tu escuela secundaria. AP Computer Science Principles and AP Computer Science A are both
01:58:10
amazing courses which will help you greatly in the future, and are also incredibly informative e importante para las universidades. Your school might also offer other classes in the field of computer science, including ones on data structures, game design, and data science. Todos y cada uno classes you can take to help expand your knowledge of programming and help you find your niche va a ayudar tremendamente As you can see, the world of code has now been opened up to you. Estos son sólo unos pocos examples of where you can go from here but there are many more we didn't talk about. You can get into GitHub and start contributing to projects, you can work on your own projects and collaborate with others, the possibilities son infinitas El siguiente paso depende de usted. This concludes our introduction to programming mine-series, we hope you enjoyed watching tanto como disfrutamos haciéndolo. Si tu enjoyed the series as a whole, consider subscribing to our channel NullPointerException, which will be linked in the description, for more contenido próximamente Gracias por ver.

DOWNLOAD SUBTITLES: