Saludos Taringa!
Día 1

Ha habído la suficiente aceptación como para impulsarme a darme el trabajo de hacer esto, supongo que si luego de esto un par de taringeros han aprendido a programar, entonces habrá valido la pena.
Dejaré en los posts correspondientes a cada día (día del libro) una lista de links a los posts anteriores.
Tambíen diré que aunque mi objetivo no es expandir la información del libro, si procuraré hacer que la información este levemente resumida como para facilitar su comprención y haré alguna acotación cuando sea necesario para llevar la información a un nivel más entendible.
Aclaro que está no será una fiel traducción (además espero sepan disculpar mi mala ortografía y errores mecanograficos), pues leo una parte y como omencioné la resumo y escribo de la manera que ustedes puedan obtener la información sin una carga extra complejidad y procurando sea resumido y simpe.
Me preguntarón en los comentarios de el [Día 0] como haría para anunciar cuando haga cada post... pues la verdad... no lo estoy seguro.. aquello que me sigan podrán verlo en el "MI" - "Noticias" , adémas intentaré anunciarlo en los comentaríos de los dias anteriores para que quienes sigan los comentarios de los post se enteren, para aquellos que no caén en ninguno de esos grupos supongo que deberán estar atentos, haré los posts en la categoría de "Hazlo tu mismo".
Intentaré resolver todas las dudas y preguntas, pero sea que hagan preguntas en los comentarios o por MP, pido algo de paciencia, pues no creo poder responderlos todos de inmediato.
Pondré en todos los posts un recordatorio de que lo que coloco es la traducción del libro: "Learn C++ in 21 days" pero que intentaré acoplar un poco para que llege con más facilidad a los iniciados.
Así que se bienvenidos y ponganle empeño, recuerden que aprender un lenguaje de programación es relativamente facil... pero aprender a programar solo se logra programando (Intercalaré algo muy interesante para ayudar con esto cuando estemos en días superiores).
Días anteriores:
Algo de historia de C++
Los lenguajes de computadoras an evolucionado desde crudas interacciones electronicas pasando por las más primitivas instrucciones maquina (binario) hasta que se empesaron a utilizar palabras más entendibles a los umanos como "ADD" o "MOV" , pero el día de hoy existen lenguajes mucho más entendibles para los humanos y que nos permiten interacciones del tipo "suma = a + b".
Como es de suponer una computadora que solo comprende 1's y 0's no puede entender un programa escrito en un lenguaje como C++ que está pensado para ser más comprencible por el humano, y es precisamente por esto que se usan otros programas, los cuales se encargan de convertir el programa escrito en C++ en 1's y 0's para que la computadora los entienda.
Estos programas a su vez pueden ser de dos tipos: los interpretes y los compiladores.
Los interpretes son programas que leen directamente el fichero con el código y ejecutan las ordenes, por esto es relativamente más facil trabajar con ellos.
Los compiladores: se encargan de convertir el código y nos entregan un fichero que contiene 0's y 1's y que podemos ejecutar (pues la maquina ya lo entiende), la ventaja es que los programas compilados se ejecutan mucho más rapido que los interpretados.
Otra ventaja de los lenguajes compilados como C++ es que usted puede distriburir los binarios (fichero con 0's y 1's) en vez del código fuente (código escrito en lenguaje C++), así nadie puede husmear en como ha echo usted el programa [Esto ultimo no es tan bueno... lo mejor es distribuir el código fuente, http://www.fsfla.org/ikiwiki/about/what-is-free-software.es.html ).
Por muchos años el objetivo principal de los programadores era el de escribir código que fuese corto y que se ejecutase rapido, pues la memoria y hardware era muy costoso, pero hoy es comprencible sacrificar algo de memoria a cambio de escribir código más facil de entender.
Programas
El código fuente (programa escrito en lenguaje C++ ) puede ser convertido en ejecutable de dos formas:
Usando un programa interprete (no lo usaremos), o usando un compilador que genere un binario (fichero con 1's y 0's)(esto si lo usaremos).
Resolviendo problemas
Por muchos años las personas que escribian programas y las personas que los usaban eran todos profecionales de las ciencias de la informatica y computación, pero hoy las computadoras son usadas por muchas personas, personas más interesadas en usar programas para resolver sus problemas que en entender como funcionan.
Irónicamente para lograr que los programas sean más faciles de utilizar para estas personas, los programas se volvieron más complejos y sofisticados pues las "interfaces de usuario amigables" contienen ventanas, menus, iconos y botones.
Programación procedimental , estructurada , y orientada a objetos
Al principio los programas eran una serie de procedimientos echos para actuar con los datos, un procedimiento son una serie de instrucciones ejecutadas una tras otra por la maquina y los datos estaban algo separados de los procedimientos.
El principio basico de la programación estructurada es "divide y vencerás", cualquier tarea por compleja que sea puede ser dividida en sub-problemas más pequeños y faciles de afrontar.
Los antiguos programas obligaban a los ususarios a ir paso a paso por una serie de pantallas, pero hoy existen modernas interfaces manejadas por eventos que presentan todas las opciones y responden a las acciones del usuario.
La programación orientada a objetos intenta responder a estas necesidades con tecnicas para manejar una gran complejidad y permitiendo reusar partes de sofware (usar código que ya hemos escrito para varias situaciones).
La idea de la programación a objetos es tratar a los procedimientos que manejan los datos y a los datos que están relacionados entre si como un solo "objeto".
C++ y la programación orientada a objetos
C++ soporta completamente la programación orientada a objetos (llamada tambien paradigma de la orientación a objetos), incluidos los 4 pilares basicos de la programación orientada a objetos:
encapsulamiento
ocultación de datos
herencia
polimorfismo
*En esta parte el libro intenta explicar cada uno, pero lo hace vagamente y de forma poco comprencible, lo dejaremos para más adelante y harémos una explicación más simple de esto*
** Haré una pequeña explicación de lo que es la Orientación a Objetos (OOP):
supongamos que en nuestro programa queremos representar el "objeto" guitarra (luego veremos como)
Asi que definimos un objeto de nombre "guitarra", dentro de él definimos sus propiedades como si esta es electrica o acustica, ademas definimos en que nota está afinada, tambien su peso y tamaño.
Luego definimos las acciones que se pueden hacer con esta: definimos la acción afinar, tocar, cambiar_cuerdas y romper.
una vez lo ayamos echo podemos usar el objeto guitarra para saber por ejemplo su peso, decimos que el peso de la guitarra es guitarra.peso , o la tocamos diciento guitarra.tocar o la afinamos con guitarra.afinar.
espero eso les de una idea, solo tienen que quedarse por el momento con una leve noción.
Debería saber o aprender C antes de C++?
Varios programadores y el mismo Stroustrup (creador de C++) están de acuerdo, pero tomando en cuenta que C++ contiene dentro de si a todo el C , no solo que NO es necesario, sino que podría ser ventajoso emepzar con C++.
Desarrollo
Cuando escribimos el código C++ en un editor de texto plano (como los proporcionados en el Día 0) guardarémos el fichero con el nombre que queramos pero con la terminación ".cpp" (no olvidar el "." punto).
NO usar Micro$oft Word para escribir el código, si lo hacemos no funcionará [quedan advertidos], el ejemplo más claro de lo que SI podemos usar es el -bloc de notas- (este es perfecto por momento).
Compilando el código fuente
Una vez tengamos nuestros ficheros del tipo "programa.cpp" con el código fuente. los compilaremos para obtener el ejecutable.
En windows estarán usando "dev-c++" como mencioné el Dia 0 , asi que lo que haremos será abrir dev-c++ y darle a la opción "nuevo proyecto", luego en la parte central pegaremos el código que hemos escrito. Luego vamos a "Ejecutar" , opción "compilar", si tienes problemas con esto googlear algo del tipo "como compilar con dev-c++" les ayudará, yo no uso windows ni ninguno de esos compiladores, así que no puedo darles una descripción exacta.
En Mac ocurre lo mismo, tendran que usar google y ver como compilar. (les aseguro que no complicado, practicamente solo tendrán que econtrar el boton que diga "compilar"
En GNU/Linux y unixes en general la cosa es mucho más facil y mejor en todo sentido :
abrimos una terminal y ejecutamos "g++ programa.cpp -o programa" (donde "programa" es el nombre que le hayamos puesto).
Nuestro primer programa en C++
Como en los libros tradicionales harémos el clasico "hola mundo", copiaremos el código tal y como está en el editor de texto, lo compilamos y lo ejecutamos.
ADVERTENCIA: este codigo contiene en la izquiera unos numeros con dos puntos ":" estos solo sirven para indicar la lina, más NO son parte del código
1: #include <iostream.h>
2:
3: int main()
4: {
5: cout << "Hello World!n";
6: return 0;
7: }
*Les recomiendo que lo copien a mano (SIN usar ctrl+C , ctrl+V)
luego compilamos conforme a lo visto antes, porfavor no pasen mientras no hayan logrado compilar y ejecutar este código, si tienen problemas no duden en pedirme ayuda o preguntar, como dije.. para quines usen windows me costará un poco ayudarles, pero lo haré como pueda.
una vez más: es IMPORTANTE que puedan ejecutar este primer programa (cuando lo ejecuten les mostrará una linea que dice "hello world" y nada más.
en windows y mac, el compilador les dará luego de compilar un fichero ejecutable el cual deberan abrir.
en GNU/Linux nos crea un fichero ejecutable que tiene el nombre que le indicamos luego de la opcion "-o"
g++ programa.cpp -o programa
Hasta aquí el día 1, he resumido y cortado deliberadamente muchas partes del texto original con el fin de que se más claro y lijero de comprender, avisenme si tienen dudas y preguntas, pero tengan algo de paciencia, responderé todo lo rapido que pueda.
Si pudieron compilar y ejecutar ese primer ejemplo entonces ya podremos hacer mucho más facil TODO lo que vendrá despues, así que haganlo y no sigan hasta que no lo hayan logrado.
En el día 2 ya nos meteremos de cabeza en C++ , en el día uno habia mucha historia y datos importantes (y mucho texto feo y aburrido que leer), pero muy poco del lenguaje en sí, en el proximo prometo será algo más interesante
Compartan el post si les parece util par que más taringeros lo usen.
Saludos!
Para aquellos que están usando DEV-C++ tienen que seleccionar la opción "console aplication" y borrar todo el código que les aparesca por defecto antes de pegar el código de ejemplo.
si les da problemas les sugiero colocar estas 2 lineas justo antes del "return 0;"
int variable;
cin >> variable;
eso evitara que el programa muestr "hola mundo" en un milisegundo y se cierre luego.

