Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page XXVIII — #28<br />
✐<br />
Prefacio<br />
normalm<strong>en</strong>te quedan más cont<strong>en</strong>tos cuando pued<strong>en</strong> compr<strong>en</strong>der cada detalle<br />
de un ejemplo que si<strong>en</strong>do impresionados por el ámbito del problema que soluciona.<br />
Además, hay un límite <strong>en</strong> la cantidad de código que se puede asimilar<br />
<strong>en</strong> una clase. Por ello, a veces recibo críticas por usar ejemplos de juguete, pero<br />
t<strong>en</strong>go la bu<strong>en</strong>a voluntad de aceptarlas <strong>en</strong> favor de producir algo pedagógicam<strong>en</strong>te<br />
útil.<br />
3. La cuidadosa pres<strong>en</strong>tación secu<strong>en</strong>cial de capacidades para que no se vea algo<br />
que no ha sido explicado. De acuerdo, esto no siempre es posible; <strong>en</strong> esos casos,<br />
se ofrece una breve descripción introductoria.<br />
4. Indicarle lo que creo que es importante para que se compr<strong>en</strong>da el l<strong>en</strong>guaje,<br />
más que todo lo que sé. Creo que hay una "jerarquía de la importancia de la<br />
información", y hay algunos hechos que el 95 por ci<strong>en</strong>to de los programadores<br />
nunca necesitará saber y que sólo podrían confundirles y afianzar su percepción<br />
de la complejidad del l<strong>en</strong>guaje. Tomando un ejemplo de C, si memoriza<br />
la tabla de preced<strong>en</strong>cia de los operadores (yo nunca lo hice), puede escribir<br />
código más corto. Pero si lo pi<strong>en</strong>sa, esto confundirá al lector/mant<strong>en</strong>edor de<br />
ese código. Así que olvide la preced<strong>en</strong>cia, y utilice paréntesis cuando las cosas<br />
no estén claras. Esta misma actitud la utilizaré con alguna otra información del<br />
l<strong>en</strong>guaje <strong>C++</strong>, que creo que es más importante para escritores de compiladores<br />
que para programadores.<br />
5. Mant<strong>en</strong>er cada sección sufici<strong>en</strong>tem<strong>en</strong>te <strong>en</strong>focada como para que el tiempo de<br />
lectura -y el tiempo <strong>en</strong>tre bloques de ejercicios- sea razonable. Eso manti<strong>en</strong>e<br />
las m<strong>en</strong>tes de la audi<strong>en</strong>cia más activas e involucradas durante un seminario<br />
práctico, y además le da al lector una mayor s<strong>en</strong>sación de avance.<br />
6. Ofrecer a los lectores una base sólida de manera que puedan compr<strong>en</strong>der las<br />
cuestiones lo sufici<strong>en</strong>tem<strong>en</strong>te bi<strong>en</strong> como para pasar a otros cursos y libros más<br />
difíciles (<strong>en</strong> concreto, el Volum<strong>en</strong> 2 de este libro).<br />
7. He tratado de no utilizar ninguna versión de <strong>C++</strong> de ningún proveedor <strong>en</strong><br />
particular porque, para apr<strong>en</strong>der el l<strong>en</strong>guaje, no creo que los detalles de una<br />
implem<strong>en</strong>tación concreta sean tan importantes como el l<strong>en</strong>guaje mismo. La<br />
docum<strong>en</strong>tación sobre las especificaciones de implem<strong>en</strong>tación propia de cada<br />
proveedor suele ser adecuada.<br />
Capítulos<br />
<strong>C++</strong> es un l<strong>en</strong>guaje <strong>en</strong> el que se construy<strong>en</strong> características nuevas y difer<strong>en</strong>tes<br />
sobre una sintaxis exist<strong>en</strong>te (por esta razón, nos referiremos a él como un l<strong>en</strong>guaje<br />
de programación ori<strong>en</strong>tado a objetos híbrido). Como mucha g<strong>en</strong>te pasa por una<br />
curva de apr<strong>en</strong>dizaje, hemos com<strong>en</strong>zado por adaptarnos a la forma <strong>en</strong> que los programadores<br />
pasan por las etapas de las cualidades del l<strong>en</strong>guaje <strong>C++</strong>. Como parece<br />
que la progresión natural es la de una m<strong>en</strong>te <strong>en</strong>tr<strong>en</strong>ada de forma procedural, he decidido<br />
compr<strong>en</strong>der y seguir el mismo camino y acelerar el proceso proponi<strong>en</strong>do y<br />
resolvi<strong>en</strong>do las preguntas que se me ocurrieron cuando yo apr<strong>en</strong>día el l<strong>en</strong>guaje y<br />
también las que se les ocurrieron a la g<strong>en</strong>te a la que lo <strong>en</strong>señaba.<br />
El curso fue diseñado con algo <strong>en</strong> m<strong>en</strong>te: hacer más efici<strong>en</strong>te el proceso de apr<strong>en</strong>der<br />
<strong>C++</strong>. La reacción de la audi<strong>en</strong>cia me ayudó a compr<strong>en</strong>der qué partes eran difíciles<br />
y necesitaban una aclaración extra. En las áreas <strong>en</strong> las que me volvía ambicioso<br />
e incluía demasiadas cosas de una vez, me dí cu<strong>en</strong>ta -mediante la pres<strong>en</strong>tación de<br />
XXVIII<br />
✐<br />
✐<br />
✐<br />
✐