13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!