Documente Academic
Documente Profesional
Documente Cultură
1
Publicado por Xabadu en Programacion el 10 septiembre 2008 | 126 Comentarios
Contenidos:
1.
2.
Qu es la programacin?.
Qu necesito para aprender a programar?.
3.
4.
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.
3.
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.
5.
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.
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.
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.
4.
5.
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.
5.
6.
7.
8.
9.
2.
Introduccin al Pseudo-cdigo.
3.