Você está na página 1de 7

Cmo aprender a programar y no morir en el intento: Parte

1
Publicado por Xabadu en Programacion el 10 septiembre 2008 | 126 Comentarios

Extrado de Como Lo Hago!


Ok, ok. Sabemos que el ttulo de este tutorial es tremendamente sensacionalista, algo extremo y har que
ms de alguno no quiera hacer click en el vinculo "Leer ms", pero nos arriesgaremos.
Dando vuelta por Internet, nos dimos cuenta de que, a pesar de estar lleno de manuales sobre lenguajes
de programacin (C, C++, Java, PHP, ASP, .NET, etc), muy pocos sitios se enfocan a dar informacin
para las personas que les interesa adentrarse en el mundo de la programacin 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 polmica y
complicada que esperamos hacer muy completa y lo ms simple que se pueda sobre como aprender a
programar, desde una introduccin con los conceptos ms bsicos hasta entrar de lleno a la
programacin en s.
Lo que buscamos en el fondo es que quienes esten interesados, a travs de estas guas puedanaprender
a programar y no solo aprender a hacer programas.
Estn 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 informacin, como siempre (y si se atreven), despus del salto.

Cmo aprender a programar y no morir


en el intento: Parte 1
Antes de comenzar, para dejar todo bien claro:
Nota: En Como Lo Hago no somos ni grus ni profesionales de la programacin, por lo que no nos
atreveramos a ofrecer estas guas como un mtodo seguro llame sha, 100% garantizado, un abdomen
ms plano en 7 das ni infalible. No utilizamos ninguna gua ni manual oficial para redactar esto, pero lo
haremos lo ms completo posible, a partir de las experiencias personales de como aprendimos a
programar e intentaremos traspasar todo eso en las siguientes lneas, por lo que estn en todo su
derecho de disputar los contenidos de este y los tutoriales siguientes y obviamente de seguir sus propios
mtodos si los estiman convenientes.
Con eso claro, veamos lo que cubriremos en la primera parte de este tutorial:

Contenidos:
1.
2.

Qu es la programacin?.
Qu necesito para aprender a programar?.

3.
4.

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 ms excusas,
vamos. Esto es como andar en bicicleta, una vez que se aprende nunca se olvida.

1.- Qu es la programacin?
Hum... que pregunta ms amplia. La verdad es que definir que es la programacin puede enfocarse
desde una serie de aspectos: Desde uno netamente tcnico hasta uno ms abstracto o conceptual, pero
veamos.
Mirandolo desde un aspecto netamente tcnico o computacional, la programacin es la realizacin de
programas (dah!), es decir, la realizacin de una serie de instrucciones que interactuarn tanto con el
hardware de nuestro computador, como con otras aplicaciones y/o el usuario que las maneje.
En aspectos ms simples an, al programar en la mayora de los casos lo que hacemos queda tan
reducido como a preparar una serie de instrucciones y operaciones que nos permitan hacer una
recoleccin 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 ms conceptual, la programacin se refiere netamente a la
resolucin de problemas. Cuando programamos lo que queremos hacer es otorgar una solucin a una
inquietud, abordando aquel problema desde distintos puntos de vista hasta encontrar la respuesta ms
ptima y/o efectiva. De a poco iremos comprendiendo ms esta definicin.
En los computadores, todo se maneja a base de nmeros 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
entendera una instruccin o serie de instrucciones en binario que le permita realizar la operacin. 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 mquina".
Cmo hacemos esto?, bueno muy fcil (aunque no tanto): Los entornos de programacin (tema que
abordaremos ms adelante en detalle) se encargan de realizar esa traduccin de lenguaje real a lenguaje
de mquina de las instrucciones que programamos y luego de vuelta la traduccin de lenguaje mquina 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 irn entendiendo
y en el fondo si no llegan a entender eso no limitar su capacidad de programacin.

2.- Qu necesito para aprender a programar?


Bueno... tiempo.
Hablando un poco ms en serio, podemos definir las necesidades en 2 tipos: las fsicas y las"personales".
a) Necesidades fsicas:
Fsicas?, Say what?, Es un concurso de popularidad?. No, en verdad por necesidades fsicas nos
refermos de cierta forma a "implementos reales o computacionales" que se utilizarn para empezar a
programar. Para las primeras guas solo necesitaremos de nosotros mismos y a lo ms una hoja de papel
y un lpiz. (para jugar al gato en los ratos de ocio. No, ya vern porque). Eventualmente cuando nos
adentremos ms necesitaremos de estas cosas:
1.
2.

Un computador (que si estn leyendo me imagino que ya lo tienen).


Un entorno de programacin (que depender del lenguaje en el que decidamos programar. Ya lo

3.

veremos con ms calma ms adelante).


Una conexin a Internet (no es de vida o muerte, pero si ayuda).

Como pueden apreciar, no necesitamos nada de otro mundo. Son cosas que estn 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 ms). Pero en todo caso no se preocupen por esos tems
an, ya lo veremos con ms calma cuando sea necesario.
b) Necesidades "personales":
Personales es un trmino que utilizamos con bastante cuidado, ya que en verdad a lo que nos referimos
es a una serie de caractersticas 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:
1.

Paciencia, y mucha: Y hacemos mucho hincapi en este punto, por eso lo hemos puesto al tope
de la lista. La programacin puede llegar a ser muy frustrante y en muchas ocasiones podemos
quedarnos pegados por un buen rato en la busqueda de una solucin a un problema, por muy
pequeo que sea. Ms 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.

2.

Perseverancia: Va ligado netamente al punto anterior. En la programacin 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

3.

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 situacin de cualquier tipo, mientras
de ms puntos o lados la miremos y obtengamos ciertas conclusiones, aumentamos ms la
posibilidad de encontrar una buena solucin. Debemos siempre tener en cuenta que todas las
personas piensan de distinta forma y por lo tanto todos pensamos distintas soluciones y ms
an, distintas formas de implementar estas soluciones. Si bien es siempre bueno definir hacia
nosotros mismos una metodologa para resolver los problemas, es muy til tener la habilidad de
abstraerse y mirar la situacin desde otro lado. En ms de alguna ocasin con esto obtendremos

4.

mejores soluciones que las que habiamos pensado originalmente.


Pensar lgica y bsicamente: Algn tiempo atrs, cuando estaba en la universidad, un profesor
nos dijo "Seores, les contar algo que nadie se ha atrevido a decirles hasta ahora: Estas
mquinas que estn frente a Uds. que son conocidas mundialmente como computadores
capaces de hacer cosas que la mente humana no puede, son en verdad tremendamente bsicas
y tontas". Curioso, no?. Es una tremenda verdad. Los computadores son mquinas
tremendamente estpidas que saben realizar solo un par de operaciones bsicas como cargar,
grabar o sumar. Todo lo dems que pueden hacer es, o bien una combinacin de esas
operaciones, o el producto de otros programadores que han desarrollado aplicaciones que les
permiten a estas mquinas realizar otros trabajos. A qu vamos con esto?, a que siempre hay
que tener presente lo bsico de la forma de pensar de los computadores cuando programamos y
por eso muchas veces debemos pensar igual de bsico que ellos. Cuando necesitamos
encontrar una solucin, debemos enfrentar la situacin como un computador lo hara sin saber
otro tipo de informaciones que nosotros sabemos y debemos disear nuestras soluciones de la

5.

forma ms bsica para poder implementarlas.


Ser estructurado: A pesar de que los programadores tienen la fama de ser medios "locos y
volados" para encontrar solucin a las respuestas, tambin son tremendamente estructurados. Y
es que cuando pensemos una solucin a implementar mediante programacin, 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 estructuracin nos ir ayudando a no tener

6.

que volver sobre el mismo camino hecho para agregar cosas que deberan haber estado ah.
Conocimientos matemticos: Si bien no es extremadamente necesario y no necesitamos ser
unos magos de los nmeros, ya que hoy con Internet tenemos acceso a la informacin de
manera rpida y sencilla, si es bueno tener nociones matemticas sobre operaciones,

7.

conocimientos algebraicos, geomtricos ya que al programar utilizaremos uno o varios de estos


conceptos en ocasiones.
Ser curioso y tener disposicin a resolver problemas: La programacin nos presenta
problemas, problemas y ms problemas. Por eso es bueno tener curiosidad de como resolverlos
de distintas formas y siempre tener la disposicin a encontrar soluciones, en especial la ms
adecuada. Es nuestra curiosidad y nuestro espritu de superacin lo que eventualmente nos ir
convirtiendo en mejores programadores.

Es por esto que en las carreras relacionadas con el rea de la computacin e informtica, previo a la
programacin siempre nos pasan (muchas veces odiandolo y sin entender bien porque) Clculo y
lgebra. El primero nos ensea a expandir la mente y mirar los problemas desde distintos puntos y el
segundo nos ensea 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
grficos.
Y finalmente un detalle a siempre tener en consideracin: En la programacin, siempre hay ms 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 Cmo parto?. Bueno partamos con una pregunta que quizs no nos hemos hecho hasta ahora:
Cualquier persona puede aprender a programar?
Bueno, si y no. Segn muchos "expertos", hay gente que no sirve para programar. Si bien tienen razn
hasta cierto punto creo, sin considerarme en lo ms mnimo experto en el tema, que cualquier persona
que tenga el inters y deseo de aprender puede llegar a hacerlo. Quizs no se puede garantizar a que
llegue a ser realmente bueno, pero creo que teniendo las ganas, la paciencia, la perseverancia y el
espritu de superacin se puede llegar muy cerca. Eso y harta prctica, que bueno, como para todo en la
vida, nunca est dems.
Entonces, Por donde partimos?, por el principio por lo ms bsico. Partimos por empezar a preguntarnos
Cmo 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 mtodos, pero en el fondo debemos encontrar el que ms nos acomode. Desde sentarnos en
la vereda y ver como un conductor est haciendo funcionar su automvil hasta abrir la calculadora de
Windows y ver como es el modo de interpretar una operacin 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 nmeros y cuales signos. En base
al signo, ve la factibilidad de realizar la operacin 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 ms concretas como el punto que viene a continuacin.

4.- Los algoritmos: La base de todo.


Los algo-qu?. Algoritmos. Chanfle.
Los algoritmos son la base de la programacin. Antes de entrar de lleno, pasemos a una definicin:
Qu es un algoritmo?
Muchas veces se tiende a confundir un algoritmo con algo netamente computacional o tecnolgico. En el
fondo no es as.
Un algoritmo es bsicamente una lista definida, ordenada y finita que nos indica como resolver un
problema determinado (Grande Wikipedia!), o sea un how-to bien bsico y definido para una operacin
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 da que nos quis
ensear lo que eran los algoritmos, nos pidi el primer da de clases y sin darnos explicacin alguna que
definieramos el algoritmo para hacer un huevo frito.
La cara de duda era unnime en los rostros presentes, ya que todos nosotros, sin experiencia previa,
relacionabamos los algoritmos con procesos netamente computacionales, entonces no tena lgica
alguna. Luego nos otorg la ayuda necesaria diciendonos: "Lo que necesito es que me definan lo que
Uds. haran 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 ms evolucionadas y tecnolgicas.
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 bsica de cualquier
solucin de programacin que vayamos a implementar. Con sus operaciones, sus supuestos, su
contingencia y su desarrollo estructurado. Mientras ms completos sean los algoritmos que nos
planteamos, mejor ser nuestra programacin propiamente tal.
Veamos un ejemplo, les parece?, ya que despus de tanta teora vamos a marearnos un poco. Viendo la
misma historia antes mencionada, intentemos hacer un algoritmo (bsico) de como haramos un huevo
frito:
Algoritmo para hacer un huevo frito:
1.

Voy a la cocina.

2.
3.

Saco un huevo del refrigerador.


Saco una sartn.

4.
5.

Pongo un poco de aceite en la sartn.


Hecho el huevo a la sartn.

6.
7.

Lo fro.
Me lo como.

Si bien tenemos los pasos bsicos 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 bsicas, pero reflejan lo
que decamos 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 versin mejorada del algoritmo sera:
Algoritmo para hacer un huevo frito 2.0:
1.
2.

Voy a la cocina.
Veo si hay huevos en el refrigerador.

3.
4.

Si hay, saco un huevo y salto al paso 8


Si no hay, voy a comprar.

5.

Para comprar, voy a buscar plata.

6.
7.

Si hay plata, saco y voy al paso 8


Si no hay plata, no se hace el huevo frito.

8.
9.

Veo si hay gas.


Si hay, prendo la cocina y voy al paso 14.

10. Si no hay, busco dinero para pedir gas.


11. Si no hay dinero, no hago el huevo.
12. Si hay, encargo y salto al paso 14.
13. Espero que llegue el gas.
14. Saco una sartn.
15. Si no hay sartn, no hago el huevo.
16. Etc, etc.
Creo que la idea se entiende. Si, es cierto, puede parecer excesivo ponerse en todos los supuestos y
quizs estemos cubriendo aspectos sumamente extraos, pero mientras ms situaciones que puedan
ocurrir consideremos y tengamos soluciones presentes para eso, ms completo ser nuestro algoritmo y
por ende nuestro programa.
En el fondo siempre debemos pensar que existe la "mala intencin de los usuarios", un concepto que ms
adelante veremos en detalle y que es una de las cosas ms importantes a tener en consideracin por
parte de los programadores.
Es una excelente prctica empezar con el tema de los algoritmos. Empezar a plantearnoslos para resolver
distintas situaciones, desde la vida cotidiana, hasta situaciones computacionales, lingusticas, de lgica,
matemtica, en realidad para todo. Siempre que hay un problema, hay un algoritmo que se pueda realizar
para encontrar la solucin.
As que los instamos a practicar un poco este tema, mientras nosotros vamos desarrollando la que ser la
segunda parte de esta gua para aprender a programar y no morir en el intento.
Por ahora lo dejaremos hasta aqu, ya que hemos cubierto los aspectos ms bsicos y necesarios y han
ledo bastante. Es momento de descansar la vista un poco y seguir pensando, que es la mejor prctica
posible.
En la prxima edicin de "Como aprender a programar y no morir en el intento":
1.

reas de memoria alias "Como almacena la informacin una mquina".

2.

Introduccin al Pseudo-cdigo.

3.

Haciendo nuestro primer programa.

Todo, a la misma batihora, en el mismo baticanal.


Como siempre, este tutorial ha sido desarrollado mediante un complejo algoritmo y documentado (no
hemos podido determinar su efectividad en general, al menos con nosotros funcion), por el equipo de
Como Lo Hago, por lo que cuenta con nuestro infalible, siempre seguro, con un poquito de gusto a limn y
establecido Sello de Garanta. Cualquier problema, duda o comentario, sientanse libres de realizarlos en
el rea habilitada a continuacin. Asistiremos sus dudas a la brevedad posible.

Você também pode gostar