Aprende a Programar desde cero

Hola gente! Bueno en esta ocasión vengo a dejarles esta pequeña guía ( pequeña por ahora) que estoy escribiendo para los que recién comienzan a programar, o quieran empezar. También puede resultar útil para los que ya programan pero quizás no tienen tanta idea de cosas básicas. Y obviamente también para los curiosos, que les gusta saber un poco de todo.

Básicamente la idea es ir publicando de a poco, a modo de capítulos una serie de post que les permita empezar desde lo mas básico, hasta llegar a utilizar las herramientas de programación que se utilizan actualmente para desarrollo de aplicaciones. Bueno basta de cháchara (¿?) y empecemos!

Aprende a Programar desde cero

Introducción


Algoritmo: Secuencia finita (limitada) de pasos ordenados para la resolución de un problema.

Como lo dice su definición un algoritmo es una serie de pasos o instrucciones que utilizamos para resolver determinada situación.
Este termino no solamente se aplica a problemas computacionales, sino que es valido para cualquier tipo de situación de la vida cotidiana. Por ejemplo, a la hora de cocinar (situación) utilizamos una receta (algoritmo) para llevar a cabo el proceso. A la hora de armar o instalar algún aparato electrónico leemos el manual de instrucciones, y de la misma manera aplicamos algoritmos a casi todo lo que realizamos.

Ejemplo:

Problema: Abrir una puerta cerrada con llave.

1) Tomar el manojo de llaves del bolsillo.
2) Seleccionar la llave que corresponda.
3) Introducir la llave en la cerradura.
4) Girar la llave en sentido anti horario.
5) etc., etc.

Puede parecer un ejemplo muy tonto (de hecho lo es), pero es algo que realizamos prácticamente todos los días. Y aunque no necesitamos de ningún manual, y hasta ni siquiera necesitamos pensar para hacerlo, es un algoritmo que ya tenemos incorporado y lo aplicamos de manera inconciente, es decir nuestro cerebro esta “programado” para realizar esas acciones. A esto me refería cuando mencione que utilizamos algoritmos para casi todo.

Supongo que a esta altura estarán pensando algo como “Claaaro , pero como mierda hago para que la computadora me entienda????”

De mas esta decir que la computadora no comprende ningún lenguaje humano, es por eso que un programa informático debe estar escrito en lenguaje de máquina (unos y ceros). Por supuesto que no somos nosotros quienes escribimos en ese lenguaje, seria una tarea muy tediosa y molesta. Los programadores escriben sus algoritmos en algún lenguaje de programación (C++, java, Basic) que resulta mucho mas amigable, y este luego es “traducido” por un programa a instrucciones de maquina para que la computadora sea capaz de leerlo y ejecutarlo.

Programacion



Variables


Antes de comenzar a explicar como se desarrolla un algoritmo necesitamos definir el termino variable. Se trata de un símbolo que representa a un elemento no definido dentro de un determinado conjunto.
Por ejemplo en matemática solemos utilizar el símbolo ‘x’ para representar un valor dentro del conjunto de los números. Como la misma palabra lo indica el valor de ‘x’ puede variar. Es decir, su valor no se encuentra explicito, sino que puede tomar cualquier valor (numérico) dependiendo de diversos factores.

En programación una variable, representa un espacio en memoria RAM al que le podemos asignar diferentes valores (datos) de manera temporal. Las variables pueden ser de diferentes tipos, es decir representar elementos dentro de diferentes conjuntos.

datos


Existen en programación tres tipos básicos de datos; numéricos, alfanuméricos y lógicos o booleanos.

El tipo de dato numérico, a su vez puede dividirse en números enteros y números con coma (reales). Por ejemplo decimos que 54 es un número entero, y 45,32 es un numero real.

Una variable alfanumérica puede contener cualquier carácter o cadena de caracteres que admita nuestra computadora. Por ejemplo “Hola que tal”, “a” , “4jks*”, “123”, etc.

Una variable lógica o booleana puede contener solo dos valores diferentes; verdadero o falso.

Cabe destacar que una variable puede contener valores de un solo tipo de datos. Es decir, a una variable de tipo entera no podemos asignarle una cadena de caracteres, solo números enteros.

Imaginemos una variable como una botella. El contenido de la misma puede variar (agua, gaseosa, jugo), pero su tipo de contenido siempre va a ser líquido. Sabemos que en realidad podemos poner otra cosa, arena por ejemplo, pero no es el fin para el que fue creada.

algoritmos





Programación estructurada


Como dije antes la intención de este “curso” es que puedan aprender a programar sin conocimiento previo del tema, mas que lo básico de informática. Es por eso que lo primero que debemos aprender es programación estructurada, que si bien ya no resulta suficiente para desarrollar aplicaciones como las actuales, es la base de la técnica de programación orientada a objetos (se verá mas adelante), que es la mas utilizada hoy en día.

Según el Teorema de la programación estructurada, todo problema computacional puede ser resuelto aplicando solamente tres tipos de acciones o estructuras básicas.

Estructura simple o secuencial (una acción tras otra)
Estructura condicional (se realiza una acción u otra dependiendo de una condición)
Estructura iterativa o de repetición (una misma acción es repetida varias veces)




Estructura simple o secuencial


Es la estructura más básica, se trata de realizar una acción tras otra. Es decir no se ejecuta una acción (en programación sentencia) , hasta haber finalizado la anterior.

Podemos identificar tres tipos de sentencias simples.

Lectura
Se lee un determinado valor desde el teclado y lo almacenamos en una variable, en este caso la variable n.

if


Escritura
Mostramos por pantalla una frase, el contenido de alguna variable, o ambas.

logica


Asignación
Se le asigna a una variable el contenido de otra variable, el resultado de alguna operación aritmética o lógica, o algún valor en particular

for




Empezando a programar



Veamos algunos ejemplos de algoritmos simples para tratar de dejar en claro lo visto hasta ahora. Por ahora no veremos ningún lenguaje de programación en particular si no que vamos a utilizar diagramas y
pseudocódigo para facilitar la comprensión de los algoritmos.


Problema 1
Realice un algoritmo que pida al usuario su nombre y luego escriba en la pantalla un saludo.

programar

estructuras


Problema 2
Realice un algoritmo que solicite al usuario su edad y muestre por pantalla cuantos días ha vivido aproximadamente.

algoritmo

variables

Bueno por ahora lo dejamos acá. Como dije la intención es ir posteando de a poco, siempre y cuando les resulte útil, así que si les pareció interesante, traten de comentar y recomendar el post.

El texto en su totalidad fue redactado por mi, así que si tienen alguna corrección o sugerencia me la pueden enviar por MP. También si les quedo alguna duda me pueden consultar para ir agregando las respuestas al post.
Espero que les sirva gente.

Gracias por pasar!

Comentarios Destacados

@rodri_sl +134
sabelo_10 dijo:Avisale a la gente que no cualquier boludo puede programar, que el pensamiento logico no es para cualquiera.

Odio a los boludos que programan un pacman y se creen miembros de Bethesda..... realmente me rompe las pelotas.


No, no creo que sea para cualquiera, pero si para el que realmente le gusta y tiene ganas de aprender.
Gracias por tu comentario!
@NJTamtrakGuy +1
Necesito que me respondan algo:

Segun lo que veo y hago, me gusta programar. Un problema, odio las matematicas ¿tendre futuro en la programacion?
@sobaladespacio
@NJTamtrakGuy Tengo la misma duda existencial

83 comentarios - Aprende a Programar desde cero

@rodri_sl +134
sabelo_10 dijo:Avisale a la gente que no cualquier boludo puede programar, que el pensamiento logico no es para cualquiera.

Odio a los boludos que programan un pacman y se creen miembros de Bethesda..... realmente me rompe las pelotas.


No, no creo que sea para cualquiera, pero si para el que realmente le gusta y tiene ganas de aprender.
Gracias por tu comentario!
@NJTamtrakGuy +1
Necesito que me respondan algo:

Segun lo que veo y hago, me gusta programar. Un problema, odio las matematicas ¿tendre futuro en la programacion?
@sobaladespacio
@NJTamtrakGuy Tengo la misma duda existencial
@jjpastor -29
mmm no se mucho, pero manejo el visual basic bastante bien y eso me basta
@quickmachine -13
esto no es programar solo explicaste variables y principios pero no es programar yo le cambiaria el titulo a uso de variables o como se usan las variables
@creedenceaj +5
Para ti y todos los tadingas que hacen comentarios de este tipo, sepan que el pensamiento lógico es la base de la programación.
@ChikoArctico +5
Lo que el creador del post quiere que entiendas es como funciona un programa, no es programar, pero si le tuvieras que explicar a un novato QUE ES PROGRAMAR? que carajo le vas a decir? le vas a armar un programa directamente para que no entienda una chota? Está muy buen echo el post y está bien dicho APRENDE a programar...
@Bajo_Fondo
y que queres mogolico? que arranque de una con MVC 4 en ASP.NET con SQL SERVER 2012???

Capitulo 1 de programacion es eso capo, de aca a la china, por donde mierda vas a empezar si no es por el principio? que queres volar antes de dar el primer paso?
@Cr1ogen +7
muy bueno para el conocimiento a fav
@furia2456 +5
te sigo porke me interesa...q programa me recomendas?
@Cr1ogen +26
rodri_sl dijo:
quickmachine dijo:esto no es programar solo explicaste variables y principios pero no es programar yo le cambiaria el titulo a uso de variables o como se usan las variables


Capo es la primera parte nomas. Es recien lo mas basico entre lo basico. Para el que no sabe nada. Como dije, si resulta util para varios voy a seguir hasta la programacion orientada a objetos y demas.
Gracias igual!


Esa es la manera de enseñar, lo que pasa que algunos aca se la dan de sabeotodo
@quickmachine +7
rodri_sl dijo:
quickmachine dijo:esto no es programar solo explicaste variables y principios pero no es programar yo le cambiaria el titulo a uso de variables o como se usan las variables


Capo es la primera parte nomas. Es recien lo mas basico entre lo basico. Para el que no sabe nada. Como dije, si resulta util para varios voy a seguir hasta la programacion orientada a objetos y demas.
Gracias igual!

mmmm ya entiendo me gusta la forma en que ejemplificas a las variables a mi me cuesta un huevo explicarle a alguien
@furia2456 +6
no le haga caso rodri...a estos giles... ...yo no entiendo un joraka x eso esta weno empesar de 0
@eskoko +7
el martes rendí un parcial de algoritmos y me fue bastante bien para no haber hecho nunca un ejercicio de esa magnitud.
me sentí ninja.
@epacheco9
les recomiendo tambien este blog

http://bloggerdelprogramador.blogspot.com/p/blog-page.html

enseñan algoritmo y programacion muy bien
@imichux_1 +6
Te sigo porque me servirá, grande!
PD. Buen post,
@TheSexMachine18 +3
me encnto, te doy mis 10, tengo 16 años y mi nterees es estudiar tecnico en programacion, asi que quiero y necesito aprender algo desde ya.

espero las demas partes
@skate099 +2
Muy simple, pero algo es algo.
espero que sigas con esto, porque estoy estudiando programacion en mi colegio y tengo un par de dudas, asi que cuando expliques arrays y vectors, ahi te dejo 10
@Raxnick -7
no aprendi nada
@Neck_knigh -1
#00bf00">realmente mui mui basico, buen post
@FuckInk_Tattoo +1
Más básico es escribir "Muy" salame!
@Shakaton +4
Demasiado util para mi, segui asi! te dejo +10 y espero proximos posts!
@distorted_memory +3
Raxnick dijo:no aprendi nada

no es difícil, es realmente sencillo esto, imagínate en la universidad donde para pasar la materia tengas que tener el 90 % del examen sobre programacion.

---------------------------------------
te dejo 10 por el laburon.
@juane2112 +1
a favoritos dsp lo veo bien! gracias por el aporte! +10
@juane2112 +1
No lo vi un carajo al final jaja
@seba7373 +1
y para cuando la segunda parte ?¿ ahy te deje +10 muy bueno lo tuyo
@elunicorata +7
Hola, vengo a aportar. En una de las imágenes pusiste "Mostar" en vez de "Mostrar". Que se yo, era como para criticar algo porque el resto es aplaudible. Soy Analista Programador, y aunque a mi me parece muy básico, me parece perfecto que apuntes a los fundamentos y los conceptos clave para ir arrancando. Seguí con ese estilo y más de uno te lo va agradecer. Yo por ahora te dejo 10 por alguno que no te los pueda dar.
@luismares1 -12
Cagastes esto sale en plaza sesamo
@Twit_X +3
Me Gustaria aprender de Programacion.....Te Sigo x si Haces la 2da Parte..... yte dejo +5 y a fav
@_Don_Rammon_ +2
TE SIGO POR ESTO! MAS +10 y PARTE 2 PARA CUANDO LA TEMRINES!
@manuplano
q buen post loco van mis +10
@sebaconv
skate099 dijo:Muy simple, pero algo es algo.
espero que sigas con esto, porque estoy estudiando programacion en mi colegio y tengo un par de dudas, asi que cuando expliques arrays y vectors, ahi te dejo 10

jajaj eso es re facil , si es c++ la cagada son los punteros..!!!!!! malditos punteros..
@ferchu_quemero +2
exelente pa!! muy bien explicado... mañana te dejo 10 por q hoy lo use!
@gropi +2
yo de programacion se exactamente cero!! a ver si aprendo algo
@nafter6k +2
En mi opinión creo que esta parte no es necesaria, podrías haber comenzado ya desde un printf en c o un cout en c++, todo lo básico de lo básico, operadores lógicos, aritmetica, después dar un toque de bucles y dejarlos con la intriga... pero buen post
@NanoMillonario +9
De programación no entiendo nada, pero me encantaría aprender. Si esto es lo básico de lo básico muy bien por vos, porque en la escuela a mi me enseñaron los números primero después a sumar y después a multiplicar no empezaron con el teorema de tales en primer grado.
Me gustaría que llegue la segunda parte!
@WaylonSmithers +7
sabelo_10 dijo:Avisale a la gente que no cualquier boludo puede programar, que el pensamiento logico no es para cualquiera.

Odio a los boludos que programan un pacman y se creen miembros de Bethesda..... realmente me rompe las pelotas.


Cualquier pelotudo puede programar.

Que el programa sea eficiente y estructurado es lo que no es para cualquiera.
@gonza377
Muy bueno loco! Me sirve mucho esta info!!
@goroth +2
Eso esta bien pero aguante el <codecademy> yo estoy aprendiendo con él
@Raikyaku
Fah que grande, justamente esto taba buscando, bien desde 0 la verdad me interesa pila esto, y he visto varios tutoriales pero todo es para los que ya tienen algo previo, y yo no tengo nada de nada, te lo agradezco, apenas puedas pone la parte 2
@taringueroo_1990 +1
gracias por toda la info, espero que subas pronto el sig post