00:00:00
[Música]
00:00:02
Muchachada, ¿cómo va? Maximiliano de
00:00:05
este lado, Max para los amigos.
00:00:07
Arrancamos con esta serie de videos para
00:00:09
aprender a programar. Y bueno, vamos a
00:00:11
arrancar de una. Cuando llegan los
00:00:13
grupos de valientes a la facultad, la
00:00:15
primera pregunta que les hago es, ¿qué
00:00:16
haces acá? Y cada cual me tiene que dar
00:00:18
una breve descripción de qué está
00:00:20
haciendo acá, por qué, a qué viene.
00:00:22
Generalmente las respuestas son algo
00:00:24
como, estoy acá porque me gusta la
00:00:26
programación, quiero aprender a
00:00:27
programar, estoy buscando un cambio
00:00:29
laboral, tengo un primo que programa,
00:00:30
tengo un amigo que programa, me contó de
00:00:32
qué se trataba, no, acá estoy, qué no
00:00:36
soy gamer, me gusta la programación,
00:00:37
entonces yo quiero programar, me gusta
00:00:39
la computación, rompí computadoras,
00:00:41
arreglé computadoras, estoy acá porque
00:00:43
me quiero llenar de plata porque mi papá
00:00:45
me dijo estudiar o trabajar. Más allá de
00:00:47
cuáles sean las respuestas o cuál sea la
00:00:50
respuesta, coincidimos en que la mayoría
00:00:52
estamos acá porque queremos programar.
00:00:54
Entonces, a partir de eso, surge la
00:00:56
primera pregunta. ¿Qué es programar? Lo
00:00:58
que lleva a la segunda pregunta, ¿qué es
00:01:00
un programa? Ahí empezamos un debate muy
00:01:02
lindo en el que yo me quedo esperando
00:01:04
una respuesta y
00:01:06
nadie para vos. 5 segundos. ¿Qué es
00:01:09
programar? Mm. Y un programa. Bien,
00:01:12
yendo a la definición de la cuestión,
00:01:14
muchas personas me dicen, "Es un
00:01:15
algoritmo, es la realidad es que tenemos
00:01:18
dos definiciones para que es un
00:01:20
programa." Por un lado, la definición
00:01:22
técnica. Perfecto. A nadie se le
00:01:23
discute. Muchas personas leen el apunte
00:01:25
antes de llegar y me dicen sí o vos
00:01:27
recién lo googleaste y sí. Pero tenemos
00:01:29
dos definiciones para lo que es un
00:01:31
programa. Por un lado, un programa es
00:01:32
una solución. Un programa es una
00:01:34
solución a una problemática. Por otro
00:01:36
lado, sírama es un conjunto de
00:01:39
algoritmos o un algoritmo. Lo que nos
00:01:41
lleva a la siguiente pregunta, ¿qué es
00:01:43
un algoritmo? Por ahí conoces estos
00:01:45
conceptos de la matemática o de la
00:01:47
física en las cuales se aplican nuestros
00:01:48
algoritmos para resolver ciertas
00:01:50
ecuaciones en las cuales a partir de la
00:01:53
subcente velocidad por kilómetros porh
00:01:55
de las cuales bueno, ¿no? Listo. En
00:01:57
programación un algoritmo no es eso. Un
00:02:00
algoritmo es un conjunto de
00:02:02
instrucciones, pero no cualquier
00:02:03
conjunto de instrucciones. Es un
00:02:04
conjunto de instrucciones que tiene que
00:02:06
estar ordenado de manera tal que a
00:02:08
partir de la ejecución en esos pasos
00:02:11
lleguemos a un resultado. Esa es la
00:02:13
definición de manual. Perfecto. La
00:02:15
analogía es muy sencilla. Una receta de
00:02:17
cocina. Si vos agarrás la caja del
00:02:19
polvillo mágico para hacer una torta,
00:02:21
están todas las instrucciones paso a
00:02:23
paso de lo que vos tenés que hacer para
00:02:24
poder cocinar esa torta o en cualquier
00:02:26
receta de cualquier comida que quieras
00:02:28
elaborar. Ahora bien, si vos seguís las
00:02:30
instrucciones en el orden en el que se
00:02:32
te plantea, probablemente llegues a
00:02:34
tener una torta aceptable o muy buena,
00:02:37
dependiendo de tus skills culinarios.
00:02:40
Ahora, si empezá por el final y después
00:02:42
seguís por el principio y después sateas
00:02:44
al medio y hacés los pasos en cualquier
00:02:47
orden, seguramente no llegues a tener
00:02:50
esa torta ni siquiera aceptable. En
00:02:52
programación pasa lo mismo. Cuando vos
00:02:54
vas a construir un programa, lo que
00:02:56
tenés que hacer es setear una serie de
00:02:59
instrucciones que vas a acomodar de
00:03:01
manera tal que la computadora ejecute
00:03:03
una por una hasta llegar a cierto
00:03:05
resultado final que necesitamos. Luego
00:03:07
del debate de qué es un programa y el
00:03:10
conjunto de instrucciones y el algoritmo
00:03:12
y y bla bla, la siguiente pregunta es,
00:03:15
dame un ejemplo de programa. Y nos
00:03:17
ponemos a pensar y pensar y pensar. Y el
00:03:19
primer ejemplo que aparece allá lejano
00:03:21
es Paint. Muy bien. Paint, ¿te acuerdas
00:03:23
del Paint? La calculadora, excelente la
00:03:26
calculadora, muy bien. El Word,
00:03:28
perfecto, excelente. El Excel, muy bien.
00:03:30
Más acá, más acá. Más ejemplos, más
00:03:32
ejemplos. y empiezan a aparecer de a
00:03:34
poquito. WhatsApp, Facebook,
00:03:37
Mercadolibbre, excelente. Todos esos son
00:03:40
programas. En realidad, si nos ponemos
00:03:41
estrictos, el software, los tipos de
00:03:43
software y qué sé yo, podemos llegar a
00:03:45
decir que son cosas distintas, pero son
00:03:47
programas bien más grandes, más chicos,
00:03:50
con más tráfico, con menos tráfico, de
00:03:51
celular, de web, de computadora, de
00:03:54
PlayStation, de lo que sea, son
00:03:56
distintos tipos de programas. En el
00:03:58
fondo son programas. Windows, me dijo
00:04:01
uno por allá. Bueno, Windows, Linux,
00:04:04
MacOS serían los que podemos llegar a
00:04:06
decir que los dejamos fuera, por lo
00:04:09
menos del universo en el que estamos
00:04:10
hablando, porque si bien podemos decir
00:04:12
que son programas es software, son muy
00:04:15
particulares, son sistemas operativos,
00:04:17
¿okay? Y un sistema operativo es lo que
00:04:19
necesitamos de base para poder luego
00:04:21
construir nuestros programas, ejecutar
00:04:23
nuestros programas, nuestros juegos. Los
00:04:25
juegos son programas, pero todo lo que
00:04:28
estamos hablando se ejecuta sobre una
00:04:30
base y esa base es el sistema operativo.
00:04:32
Y como por ahora no vamos a programar
00:04:34
sistemas operativos, los dejamos fuera
00:04:35
de esta conversación, aunque yo una vez
00:04:38
quise programar, pero sí son importantes
00:04:40
y son la base donde corre todo lo demás,
00:04:42
de eso no hay duda. Entonces, sabemos
00:04:44
que es un programa, sabemos que es un
00:04:45
conjunto de algoritmos y un algoritmo es
00:04:48
un conjunto de instrucciones. Además,
00:04:49
dijimos que un programa es una solución
00:04:51
a un problema. Entonces, ¿qué sería
00:04:53
programar? Muy bien. Si un programa es
00:04:55
una solución a un problema, programar es
00:04:58
solucionar un problema. Ahora bien,
00:05:00
vayamos un poquito más allá. Un programa
00:05:02
es la solución a un problema. Programar
00:05:04
es resolver un problema. Todo esto a
00:05:07
partir de la utilización de una
00:05:08
computadora dentro de toda esta gran
00:05:10
ciencia que se llama informática. Esto
00:05:12
que decimos de que se trata de resolver
00:05:14
un problema no es una cuestión menor.
00:05:16
Para nosotros poder construir un
00:05:17
programa, primero tenemos que saber
00:05:19
llevar a cabo la acción que queremos que
00:05:21
ese programa realice. Para poder hacer
00:05:24
que un programa resuelva una
00:05:26
problemática, yo la tengo que poder
00:05:27
resolver primero. Pensemos el siguiente
00:05:29
ejemplo, el ejemplo que doy
00:05:31
absolutamente siempre. Yo no sé sumar,
00:05:33
no sé sumar. Necesito poder sumar dos
00:05:36
números. Yo sé que tengo dos números y
00:05:38
que la suma de ellos me da un resultado,
00:05:41
pero no sé cómo hacer para sumar esos
00:05:43
dos números. Entonces, voy a necesitar
00:05:45
la ayuda de un programa, por ejemplo, de
00:05:47
una calculadora. Una calculadora está
00:05:50
programada, tiene programación. Ahora,
00:05:52
¿quién hizo esa programación? Esa
00:05:54
programación la hizo alguien que sabe
00:05:55
sumar porque de alguna manera le tuvo
00:05:57
que explicar a la calculadora cómo se
00:05:59
suma o cómo se multiplica o cómo se
00:06:01
divide o cómo se resuelven ciertas
00:06:03
operaciones matemáticas. alguien las
00:06:05
sabe antes y después le enseña la
00:06:08
computadora. Entonces, cuando yo
00:06:09
programo, lo primero que tengo que hacer
00:06:11
es resolver un problema. Programar va a
00:06:13
ser el medio para enseñarle a la
00:06:14
computadora cómo son esa serie de pasos
00:06:16
que tiene que llevar adelante para
00:06:18
resolver la problemática de mis
00:06:20
usuarios. Por ejemplo, sumar o por
00:06:22
ejemplo, traducir un texto. Cuando vos
00:06:24
ingresas al Translate de Google, lo
00:06:26
usaste alguna vez, sirve para traducir
00:06:28
texto. Lo que vos estás haciendo es
00:06:30
escribir un texto que está en un idioma
00:06:32
determinado, por ejemplo, en inglés. Y
00:06:34
el programa lo que hace es aplicar una
00:06:36
serie de instrucciones para convertirlo
00:06:37
y devolverte lo que vos necesitas. Ya
00:06:40
convertido porque vos no sabés hablar en
00:06:42
inglés. Volvamos a la suma, pasa
00:06:43
exactamente lo mismo. Yo le doy al
00:06:45
programa dos números, el programa los
00:06:47
suma y me da el resultado, me da la
00:06:50
respuesta. Y tenemos que pensar en algo
00:06:52
más. En esta acción de te doy algo,
00:06:55
hacés una serie de pasos y me devolvés
00:06:57
otra cosa, se está sucediendo lo que
00:06:59
sería el camino básico de la
00:07:00
programación, el cual es, te doy datos,
00:07:03
me aplicas un procesamiento y me
00:07:05
devolvés información. I can't believe
00:07:06
it. Se va entendiendo más o menos. ¿Y
00:07:08
para qué programamos? Un programa es la
00:07:10
solución a un problema. Programar es
00:07:11
resolver un problema. ¿Y la computadora,
00:07:13
¿dónde entra en todo esto? Bien, cuando
00:07:15
decimos que programar es resolver un
00:07:17
problema, en realidad la resolución del
00:07:19
problema es una parte. Luego la otra
00:07:21
parte va a ser propiamente dicho
00:07:23
realizar la programación. Pero antes de
00:07:25
poder realizar la programación yo tengo
00:07:27
que poder resolver el problema. Si yo
00:07:30
necesito sumar dos números, primero
00:07:32
necesito saber cómo se suman esos
00:07:33
números y después programar las
00:07:35
instrucciones que lleven a cabo la suma
00:07:37
de los dos números. La acción de
00:07:39
programar va a ser el medio a partir del
00:07:40
cual yo le voy a enseñar a la
00:07:42
computadora cómo es sumar. Entonces, a
00:07:45
partir del momento en que yo le dé a la
00:07:47
computadora las instrucciones de cómo
00:07:49
sumar, la computadora ya lo va a saber
00:07:51
hacer y lo va a poder hacer rápidamente.
00:07:53
Lo mismo que traducir un texto, lo mismo
00:07:54
que hacer operaciones mucho más
00:07:56
complicadas o lo mismo que mandar un
00:07:58
mensaje por Messenger y que te vaya y
00:08:00
que te vuelva. Entonces, ahora sabemos
00:08:01
que es un programa, tenemos la
00:08:02
definición técnica, tenemos la
00:08:04
definición filosófica, resolver un
00:08:06
problema. A partir de la definición
00:08:07
técnica, sabemos que es un algoritmo,
00:08:10
sabemos de qué se trata ese conjunto de
00:08:12
instrucciones y sabemos para qué lo
00:08:13
programamos, para que la computadora lo
00:08:15
entienda. Ahora que ya sabemos todo
00:08:17
esto, podríamos decir que ya podemos
00:08:18
empezar a programar, pero falta una
00:08:20
cosita más. Para poder programar tenemos
00:08:22
que pensar como gente que va a
00:08:23
programar, tenemos que pensar como
00:08:25
programador, tenemos que pensar como
00:08:27
programadora, tenemos que mejorar
00:08:28
nuestra lógica, tenemos que pensar
00:08:30
diferente, tenemos que desarrollar lo
00:08:31
que se denomina pensamiento divergente.
00:08:34
Pero, Maxi, ¿qué es el pensamiento
00:08:35
divergente? Si googleas vas a encontrar
00:08:37
que el pensamiento divergente es el
00:08:38
proceso de pensamiento de generar ideas
00:08:40
creativas mediante la exploración de
00:08:41
muchas posibles soluciones. ¿Qué quiere
00:08:43
decir esto? Que no hay una sola
00:08:44
solución. Tenemos muchas posibles
00:08:46
solución para una problemática
00:08:48
determinada y queda en nosotros buscar a
00:08:50
veces la mejor solución o a veces la
00:08:52
solución. No siempre vamos a encontrar
00:08:54
que es una la forma de hacer las cosas,
00:08:57
menos en el mundo de la programación. Y
00:08:59
va a quedar en nosotros y el
00:09:00
entrenamiento que vayamos teniendo y
00:09:02
cada vez más en cómo vamos a ir
00:09:03
encarando las problemáticas. Tenemos que
00:09:05
cambiar nuestra forma de pensar. Tenemos
00:09:07
que mejorar la lógica. Para poder
00:09:09
programar tenemos que volver a aprender
00:09:11
a pensar. Esto no es algo con lo que se
00:09:12
nace, esto es algo que se desarrolla. Y
00:09:14
no te dejes engañar. Cualquiera puede
00:09:16
programar. Sí, cualquiera puede
00:09:18
programar. dependerá de las
00:09:19
circunstancias de cada cual, es decir,
00:09:21
el contexto cerebral, por llamarlo de
00:09:24
alguna manera, que estará dado por todo
00:09:25
lo que hayamos hecho antes. Por ejemplo,
00:09:28
saber inglés, saber matemáticas, saber
00:09:29
física, haber hecho alguna carrera en la
00:09:31
facultad, tener algunas materias de la
00:09:33
facultad, tener un oficio, haber hecho
00:09:35
cursos. Todas esas cuestiones suman a la
00:09:37
base de nuestro contexto cerebral, a
00:09:40
partir del cual vamos a tener una mejor
00:09:41
predisposición a ir entendiendo ciertas
00:09:44
cuestiones de lógicas y ciertas
00:09:45
cuestiones de este pensamiento
00:09:47
divergente o nos va a costar un poco
00:09:49
más. Sea cual sea el modo llegar,
00:09:50
podemos llegar tranquilamente. Si no
00:09:52
tenemos una base como la que estamos
00:09:54
hablando y nuestro cerebro está
00:09:55
fresquito y nuevito, tendremos que
00:09:57
enseñarle. Quizás es mucho más sencillo
00:09:59
enseñarle a un cerebro a pensar, a
00:10:01
programar, que desenseñarle a un cerebro
00:10:03
y tener que enseñarle de nuevo. En fin,
00:10:05
el caso es que tenemos que aprender a
00:10:07
pensar. Y ustedes me preguntarán, "¿Y
00:10:09
cómo aprendo a pensar?" Lo primero que
00:10:10
podemos hacer es ponernos en el lugar de
00:10:12
la computadora. Ya sabemos que un
00:10:13
programa es un algoritmo o varios
00:10:15
algoritmos y que un algoritmo es un
00:10:17
conjunto de instrucciones. Esas
00:10:18
instrucciones tienen que tener cierto
00:10:20
orden para que ejecutada en ese orden se
00:10:22
llegue a un resultado, ¿verdad?
00:10:24
Entonces, volvamos a nuestro ejemplo de
00:10:26
sumar dos números. Si yo no sé sumar dos
00:10:28
números y necesito una calculadora, ¿qué
00:10:30
voy a hacer? Voy a agarrar la
00:10:31
calculadora, le voy a insertar los dos
00:10:32
números y la calculadora me va a
00:10:34
devolver el resultado. Pero ahora
00:10:35
pensemos por un momento que nosotros
00:10:37
somos la calculadora. ¿Cómo
00:10:38
interactuaríamos con nuestros usuarios
00:10:40
si fuéramos la calculadora, si fuéramos
00:10:43
el programa? Si fuéramos la computadora.
00:10:46
¿Cómo sería? ¿O la persona que quiere
00:10:47
sumar dos números? Dígame los dos
00:10:49
números, por favor. Un número, otro
00:10:51
número. Sumar. sumo los números y el
00:10:53
resultado es, si nos ponemos a pensar
00:10:55
cuáles fueron los pasos que tuvimos que
00:10:56
seguir, primero como usuario para poder
00:10:58
obtener la suma de los dos números, pero
00:11:00
luego como programa para poder devolver
00:11:03
lo que me está pidiendo mi usuario.
00:11:04
Analicemos. Yo como persona agarro la
00:11:07
computadora, tengo que ingresar los
00:11:08
números, luego la computadora me da el
00:11:10
resultado, perfecto. Pero el programa lo
00:11:12
que tuvo que hacer fue pedirme dos
00:11:14
números, realizar la operación para
00:11:16
sumar esos dos números y luego mostrarme
00:11:19
el resultado. Fíjense, teniendo en
00:11:21
cuenta lo que decíamos antes del
00:11:22
conjunto de instrucciones ordenado de
00:11:24
manera lógica, no podemos primero
00:11:26
mostrar el resultado, después hacer una
00:11:28
suma y después pedir los números. tiene
00:11:30
que ser en el orden indicado. Ahora que
00:11:32
sabemos cuáles son las instrucciones que
00:11:34
nuestro programa tiene que llevar
00:11:36
adelante, lo podemos construir. Este es
00:11:38
el proceso de pensamiento que yo voy a
00:11:39
tener que llevar a cabo a partir de
00:11:41
ahora, cada vez que quiera diseñar un
00:11:43
programa y posteriormente construirlo,
00:11:45
analizar qué es lo que se necesita hacer
00:11:47
y cuáles serían esos pasos que tengo que
00:11:49
llevar adelante para poder llegar a ese
00:11:51
resultado a partir de, en este caso, dos
00:11:53
números o a partir de determinados datos
00:11:55
que se puedan llegar a necesitar para
00:11:57
determinado programa o problemática.
00:12:00
Ahora que ya sabemos cuáles son los
00:12:01
pasos que tiene que seguir nuestro
00:12:02
programa, cuáles son esas instrucciones,
00:12:04
cuál es el orden de las mismas, estamos
00:12:06
en condiciones de construir nuestra
00:12:08
primera aplicación, nuestro primer
00:12:09
algoritmo, nuestro primer programa, pero
00:12:12
eso lo vamos a hacer en el próximo
00:12:13
episodio, ya que son varios los
00:12:14
conceptos nuevos que tenemos que ir
00:12:15
incorporando. Y no me quiero estirar
00:12:17
tanto en el tiempo en el video porque si
00:12:19
no se va a ser muy largo y un poco
00:12:21
tedioso de ver. Nos vemos la próxima.