Bueno acá les brindo este curso de programación desde 0, es decir, no se necesita conocimientos previos, bueno no hay mucho que decir si leyeron la introducción en donde especifica bien de que se trata este curso, bueno para los que no lo han leído, les comento de que se trata de una forma general o simple, este curso trata de enseñar a las persona que no tienen ningún conocimiento sobre programación, sobre la misma y luego de enseñarles la base (lo que para todos los curso de programación que hay en el web tienen que saber, acá se los enseñamos), nuestra base es como funciona la computado en la parte de software y programación, les enseñaremos la estructura de la programación denominada "Pseudocodigo", luego de haber aprendido esto les vamos a dar ejercicios para que puedan practicar y aprender programación como en una universidad, es mas los ejercicios que van a ser publicados son los de la universidad que estoy estudiando, es decir voy a plasmar en esta pagina web mi carrera de licenciatura en programación de sistemas, pero de una forma resumida para que no pierdan demasiado tiempo, voy a seleccionar lo mas relevante y lo voy a postear, así que estén por seguro que el contenido de este curso es 100% efectivo. La programación es dedicación, paciencia y practica, mucha practica. Bueno luego de que aprendan pseudocodigo, entraremos a la programación en si, entraremos en C , luego C++ (C orientado a objetos), luego por otro lado vamos a hacer 2 cursos chiquitos de HTML y Javascript, el curso de HTML es para hacer paginas web y el de Javascript les va a servir para varias cosas, se puede utilizar para paginas, para programar videojuegos, programas, etc.
Bueno basta de vueltas entremos al curso!!!!
Como aprender a programar desde 0
Dando vuelta por Internet, nos dimos cuenta de que, a pesar de
estar lleno de manuales sobre lenguajes de programación (C, C++, Java, PHP,
ASP, .NET, etc), muy pocos sitios se enfocan a dar información para las
personas que les interesa adentrarse en el mundo de la programación y desean
saber como hacerlo y por donde partir.
Es por esto que hoy, con el apoyo de nuestro buen Topher, damos inicio a una
saga polémica y complicada que esperamos hacer muy completa y lo
más simple que se pueda sobre como aprender a programar, desde una introducción
con los conceptos más básicos hasta entrar de lleno a la programación en sí.
Lo que buscamos en el fondo es que quienes esten interesados, a
través de estas guías puedan aprender a programar y no solo aprender
a hacer programas.
¿Están listos?, el viaje es largo y hoy solo es la primera parada,
así que busquen algo para comer, para tomar, armen una mochila de campamento y
empaquen un par de calcetines, ya que nadie sabe lo que nos espera por delante.
Toda la información, como siempre (y
si se atreven), después del salto.
Cómo aprender a programar desde 0
Antes de comenzar, para dejar todo bien claro:
Nota: En Como Lo Hago no somos ni gúrus
ni profesionales de la programación, por lo que no nos atreveríamos a ofrecer
estas guías como un método seguro llame sha, 100% garantizado, un
abdomen más plano en 7 días ni
infalible. No utilizamos ninguna guía ni manual oficial para redactar esto,
pero lo haremos lo más completo posible, a partir de las experiencias personales
de como aprendimos a programar e intentaremos traspasar todo eso en las
siguientes líneas, por lo que están en todo su derecho de disputar los
contenidos de este y los tutoriales siguientes y obviamente de seguir sus
propios métodos si los estiman convenientes.
Con eso claro, veamos lo que cubriremos en la primera parte de
este tutorial:
Contenidos:
- ¿Qué es la
programación?.
- ¿Qué necesito
para aprender a programar?.
- Primeros pasos
para aprender.
- Los algoritmos:
la base de todo.
Puede parecer poco, pero creanme que no lo es. Así que ya con todo
eso definido, no hay más excusas, vamos. Esto es como andar en bicicleta, una
vez que se aprende nunca se olvida.
1.- ¿Qué es la programación?
Hum… que pregunta más amplia. La verdad es que definir que es la
programación puede enfocarse desde una serie de aspectos: Desde uno netamente
técnico hasta uno más abstracto o conceptual, pero veamos.
Mirandolo desde un aspecto netamente técnico o computacional, la
programación es la realización de programas(dah!),
es decir, la realización de una serie de instrucciones que interactuarán tanto
con el hardware de nuestro computador, como con otras aplicaciones y/o el
usuario que las maneje.
En aspectos más simples aún, al programar en la mayoría de los
casos lo que hacemos queda tan reducido como a preparar una serie de
instrucciones y operaciones que nos permitan hacer una recolección de datos,
operar con esos datos de alguna forma y luego presentar una serie de resultados
producto de esas operaciones.
Y finalmente mirandolo desde un aspecto más conceptual, la
programación se refiere netamente a la resolución de problemas. Cuando
programamos lo que queremos hacer es otorgar una solución a una inquietud,
abordando aquel problema desde distintos puntos de vista hasta encontrar la respuesta
más óptima y/o efectiva. De a poco iremos comprendiendo más esta definición.
En los computadores, todo se maneja a base de números binarios
(1’s y 0’s), por lo que cuando por ejemplo queremos realizar una suma, nuestro
equipo no entiende si le decimos “suma 2 + 2″ sino que entendería una instrucción o
serie de instrucciones en binario que le permita realizar la operación. Por eso
cuando nosotros programamos, lo que hacemos es crear un intermediario entre el
usuario que usa un lenguaje “real” y nuestro equipo que utiliza un
lenguaje “de máquina”.
¿Cómo hacemos esto?, bueno muy fácil (aunque
no tanto): Los entornos de programación (tema
que abordaremos más adelante en detalle) se encargan de realizar esa traducción
de lenguaje real a lenguaje de máquina de las instrucciones que programamos y
luego de vuelta la traducción de lenguaje máquina a lenguaje real de los
resultados de las operaciones. Así que cuando vemos el resultado “4″ en pantalla es que nuestro equipo ha
mandado el mensaje en binario y ha sido traducido por el programa que hicimos.
Hasta ahora hemos visto conceptos algo complejos, pero no se
preocupen, de a poco se irán entendiendo y en el fondo si no llegan a entender
eso no limitará su capacidad de programación.
2.- ¿Qué necesito para aprender a programar?
Bueno… tiempo.
Hablando un poco más en serio, podemos definir las necesidades en
2 tipos: las físicas y las “personales”.
a) Necesidades físicas:
¿Físicas?, ¿Say what?, ¿Es un concurso de popularidad?. No, en
verdad por necesidades físicas nos referímos de cierta forma a “implementos
reales o computacionales” que
se utilizarán para empezar a programar. Para las primeras guías solo
necesitaremos de nosotros mismos y a lo más una hoja de papel y un lápiz. (para
jugar al gato en los ratos de ocio. No, ya verán porque).
Eventualmente cuando nos adentremos más necesitaremos de estas cosas:
- Un computador
(que si están leyendo me imagino que ya lo tienen).
- Un entorno de programación
(que dependerá del lenguaje en el que decidamos programar. Ya lo veremos
con más calma más adelante).
- Una conexión a
Internet (no es de vida o muerte, pero si ayuda).
Como pueden apreciar, no necesitamos nada de otro mundo. Son cosas
que están accesibles a solo unos clicks de distancia (a
menos que no tengan computador, ya que no pueden ir clickeando por la vida para
comprarse uno. O sea pueden, pero cuesta más). Pero en todo caso no
se preocupen por esos ítems aún, ya lo veremos con más calma cuando sea
necesario.
b) Necesidades “personales”:
Personales es un término que utilizamos con bastante cuidado, ya
que en verdad a lo que nos referimos es a una serie de características y
habilidades (natas y/o adquiridas) personales que ayudan mucho en el
aprendizaje. Si bien el no tener alguna de estas puede que termine por no ser
un impedimento si sirve de mucho tenerlas. Nos referimos a:
- Paciencia, y
mucha: Y hacemos mucho hincapié en este
punto, por eso lo hemos puesto al tope de la lista. La programación puede
llegar a ser muy frustrante y en muchas ocasiones podemos quedarnos
pegados por un buen rato en la busqueda de una solución a un problema, por
muy pequeño que sea. Más adelante daremos algunos consejos sobre esto. Lo
importante es tener paciencia y entender que siempre hay baches en el
camino, por muy buenos que lleguemos a ser.
- Perseverancia: Va
ligado netamente al punto anterior. En la programación siempre hay que ser
perseverante para poder lograr los objetivos que nos proponemos. En muchas
ocasiones nos encontraremos con distintos problemas que van desde: no
saber como afrontar un problema, hasta bloqueos mentales o
desconocimiento. Saldremos adelante solo siendo perseverantes y solo
continuando cuando pensemos que ya debemos tirar la esponja. Estas últimas
2 cualidades es lo que separa a los buenos programadores de los malos. No
los conocimientos de lenguajes, sino la paciencia y la perseverancia es lo
que los llevará a ser buenos.
- Mirar las
situaciones desde distintos puntos: Esto es muy útil
y nos refleja a nosotros mismos de como enfrentamos la vida. Cuando se nos
presenta una situación de cualquier tipo, mientras de más puntos o lados
la miremos y obtengamos ciertas conclusiones, aumentamos más la
posibilidad de encontrar una buena solución. Debemos siempre tener en
cuenta que todas las personas piensan de distinta forma y por lo tanto
todos pensamos distintas soluciones y más aún, distintas formas de
implementar estas soluciones. Si bien es siempre bueno definir hacia
nosotros mismos una metodología para resolver los problemas, es muy útil
tener la habilidad de abstraerse y mirar la situación desde otro lado. En
más de alguna ocasión con esto obtendremos mejores soluciones que las que
habiamos pensado originalmente.
- Pensar lógica y
básicamente: Algún
tiempo atrás, cuando estaba en la universidad, un profesor nos dijo“Señores, les contaré algo que
nadie se ha atrevido a decirles hasta ahora: Estas máquinas que están
frente a Uds. que son conocidas mundialmente como computadores capaces de
hacer cosas que la mente humana no puede, son en verdad tremendamente
básicas y tontas”. ¿Curioso, no?. Es una tremenda verdad. Los
computadores son máquinas tremendamente estúpidas que saben realizar solo
un par de operaciones básicas como cargar, grabar o sumar. Todo lo demás
que pueden hacer es, o bien una combinación de esas operaciones, o el
producto de otros programadores que han desarrollado aplicaciones que les
permiten a estas máquinas realizar otros trabajos. ¿A qué vamos con esto?,
a que siempre hay que tener presente lo básico de la forma de pensar de
los computadores cuando programamos y por eso muchas veces debemos pensar
igual de básico que ellos. Cuando necesitamos encontrar una solución,
debemos enfrentar la situación como un computador lo haría sin saber otro
tipo de informaciones que nosotros sabemos y debemos diseñar nuestras
soluciones de la forma más básica para poder implementarlas.
- Ser
estructurado: A
pesar de que los programadores tienen la fama de ser medios “locos y volados” para encontrar solución a las
respuestas, también son tremendamente estructurados. Y es que cuando
pensemos una solución a implementar mediante programación, debemos
pensarla estructurada de la forma: Bueno, para hacer esto, primero hay que
hacer esto, luego esto, luego esto y finalmente esto. Ese orden y esa
estructuración nos irá ayudando a no tener que volver sobre el mismo
camino hecho para agregar cosas que deberían haber estado ahí.
- Conocimientos
matemáticos: Si
bien no es extremadamente necesario y no necesitamos ser unos magos de los
números, ya que hoy con Internet tenemos acceso a la información de manera
rápida y sencilla, si es bueno tener nociones matemáticas sobre
operaciones, conocimientos algebraicos, geométricos ya que al programar
utilizaremos uno o varios de estos conceptos en ocasiones.
- Ser curioso y
tener disposición a resolver problemas: La programación
nos presenta problemas, problemas y más problemas. Por eso es bueno tener
curiosidad de como resolverlos de distintas formas y siempre tener la disposición
a encontrar soluciones, en especial la más adecuada. Es nuestra curiosidad
y nuestro espíritu de superación lo que eventualmente nos irá convirtiendo
en mejores programadores.
Es por esto que en las carreras relacionadas con el área de la
computación e informática, previo a la programación siempre nos pasan (muchas
veces odiandolo y sin entender bien porque) Cálculo y Álgebra. El primero nos
enseña a expandir la mente y mirar los problemas desde distintos puntos y el
segundo nos enseña a establecer una estructura de pensamiento. Así que ya
saben, a dejar de odiar a esos viejos pelados (¿referencia personal?) que nos llenan de funciones, sistemas
de ecuaciones y gráficos.
Y finalmente un detalle a siempre tener en consideración: En la
programación, siempre hay más de una forma de
resolver los problemas.
3.- Primeros pasos para aprender
Si hemos aguantado leer los primeros extensos parrafos llegamos al punto de: Ok,
creo que tengo todo. Ahora ¿Cómo parto?. Bueno partamos con una
pregunta que quizás no nos hemos hecho hasta ahora:
¿Cualquier
persona puede aprender a programar?
Bueno, si y no. Según muchos “expertos”, hay gente que
no sirve para programar. Si bien tienen razón hasta cierto punto creo, sin
considerarme en lo más mínimo experto en el tema, que cualquier persona que
tenga el interés y deseo de aprender puede llegar a hacerlo. Quizás no se puede
garantizar a que llegue a ser realmente bueno, pero creo que teniendo las
ganas, la paciencia, la perseverancia y el espíritu de superación se puede llegar
muy cerca. Eso y harta práctica, que bueno, como para todo en la vida, nunca
está demás.
Entonces, ¿Por donde partimos?, por el principio por lo más básico. Partimos por
empezar a preguntarnos ¿Cómo funcionan las cosas?. Me explico: Debemos empezar
a entrenar nuestra mente y forma de pensar a descubrir como funcionan las cosas
y como se resuelven los problemas. Para hacer esto hay una serie de formas y
métodos, pero en el fondo debemos encontrar el que más nos acomode. Desde
sentarnos en la vereda y ver como un conductor está haciendo funcionar su
automóvil hasta abrir la calculadora de Windows y ver como es el modo de
interpretar una operación que le indiquemos realizar. No necesitamos intentar
descifrar el procedimiento exacto y detallado, si no que plantearnos esas
inquietudes y ver como funcionan.
Por ejemplo, cuando le decimos a la calculadora de Windows que
realice una suma y le damos los datos, esta lo que hace es leer los datos que
le dimos, interpretar cuales son números y cuales signos. En base al signo, ve
la factibilidad de realizar la operación y la hace. Así de “simple”.
Una vez que empecemos a entrenar nuestra forma de pensar de esa
manera, podemos empezar a entrar a cosas mucho más concretas como el punto que
viene a continuación.
4.- Los algoritmos: La base de todo.
¿Los algo-qué?. Algoritmos. Chanfle.
Los algoritmos son la base de la programación. Antes de entrar de
lleno, pasemos a una definición:
¿Qué es un
algoritmo?
Muchas veces se tiende a confundir un algoritmo con algo netamente
computacional o tecnológico. En el fondo no es así.
Un algoritmo es básicamente una lista definida, ordenada y finita
que nos indica como resolver un problema determinado (¡Grande
Wikipedia!), o sea un how-to bien básico y definido para una
operación determinada.
Si no quedó muy claro, utilizaremos otro ejemplo que nos ocurrió
en la Universidad:
El mismo profesor que nos indicó la estupidez de nuestros queridos
computadores, el día que nos quisó enseñar lo que eran los algoritmos, nos
pidió el primer día de clases y sin darnos explicación alguna que definieramos
el algoritmo para hacer un huevo frito.
La cara de duda era unánime en los rostros presentes, ya que todos
nosotros, sin experiencia previa, relacionabamos los algoritmos con procesos
netamente computacionales, entonces no tenía lógica alguna. Luego nos
otorgó la ayuda necesaria diciendonos: “Lo que necesito es que me definan lo
que Uds. harían desde un principio para hacer un huevo frito”.
Fue ahí donde nos dimos cuenta que uno puede definir algoritmos
para cualquier tipo de procesos, desde los de la vida misma hasta cosas más
evolucionadas y tecnológicas.
Ahora, a diferencia de como uno ve los problemas en la vida real,
al realizar un algoritmo sobre cualquier cosa, siempre es bueno plantearse los
supuestos de cualquier problema que pudiese ocurrir y que soluciones se pueden
establecer al respecto.
¿A qué vamos con esto?, a darnos cuenta de que los algoritmos son
la premisa básica de cualquier solución de programación que vayamos a
implementar. Con sus operaciones, sus supuestos, su contingencia y su
desarrollo estructurado. Mientras más completos sean los algoritmos que nos
planteamos, mejor será nuestra programación propiamente tal.
Veamos un ejemplo, ¿les parece?, ya que después de tanta teoría
vamos a marearnos un poco. Viendo la misma historia antes mencionada,
intentemos hacer un algoritmo (básico) de como haríamos un huevo frito:
Algoritmo para hacer un huevo frito:
- Voy a la cocina.
- Saco un huevo
del refrigerador.
- Saco una sartén.
- Pongo un poco de
aceite en la sartén.
- Hecho el huevo a
la sartén.
- Lo frío.
- Me lo como.
Si bien tenemos los pasos básicos establecidos de forma correcta,
podemos empezar a ver de que nuestro algoritmo tiene ciertas fallas, como por
ejemplo: ¿Qué pasa si no hay huevos?, ¿Qué pasa si no hay aceite?, ¿Qué pasa si
no hay gas?. Pueden ser preguntas y respuestas algo básicas, pero reflejan lo
que decíamos de plantearnos supuestos. Cuando programamos siempre tenemos que
cubrir todos los aspectos necesarios, ya que por muy bien que conozcamos
nuestro programa, el usuario puede no saberlo todo, y es por esto que debemos
estar preparados para cubrir cualquiera de estas situaciones. Una versión
mejorada del algoritmo sería:
Algoritmo para hacer un huevo frito 2.0:
- Voy a la cocina.
- Veo si hay huevos en el refrigerador.
- Si hay, saco un huevo y salto al paso 8
- Si no hay, voy a comprar.
- Para comprar, voy a buscar plata.
- Si hay plata, saco y voy al paso 8
- Si no hay plata, no se hace el huevo frito.
- Veo si hay gas.
- Si hay, prendo la cocina y voy al paso 14.
- Si no hay, busco dinero para pedir gas.
- Si no hay dinero, no hago el huevo.
- Si hay, encargo y salto al paso 14.
- Espero que llegue el gas.
- Saco una sartén.
- Si no hay sartén, no hago el huevo.
- Etc, etc.
Creo que la idea se entiende. Si, es cierto, puede parecer
excesivo ponerse en todos los supuestos y quizás estemos cubriendo aspectos
sumamente extraños, pero mientras más situaciones que puedan ocurrir
consideremos y tengamos soluciones presentes para eso, más completo será
nuestro algoritmo y por ende nuestro programa.
En el fondo siempre debemos pensar que existe la “mala
intención de los usuarios”, un concepto que más adelante veremos en
detalle y que es una de las cosas más importantes a tener en consideración por
parte de los programadores.
Es una excelente práctica empezar con el tema de los algoritmos.
Empezar a plantearnoslos para resolver distintas situaciones, desde la vida
cotidiana, hasta situaciones computacionales, linguísticas, de lógica,
matemática, en realidad para todo. Siempre que hay un problema, hay un
algoritmo que se pueda realizar para encontrar la solución.
Así que los instamos a practicar un poco este tema, mientras
nosotros vamos desarrollando la que será la segunda parte de esta guía para
aprender a programar y no morir en el intento.
Por ahora lo dejaremos hasta aquí, ya que hemos cubierto los
aspectos más básicos y necesarios y han leído bastante. Es momento de descansar
la vista un poco y seguir pensando, que es la mejor práctica posible.
Bueno eso es todo por la primera edición nos vemos en la próxima edición, espero que les haya gustado, adiós, hasta la próxima...
gracias por visitar "Arte Digital"