3. Aprender C++

Yo me adentré en C++ exactamente desde la misma posición en la que espero que se encuentren muchos de los lectores de este libro: como un programador con una actitud muy sensata y con muchos vicios de programación. Peor aún, mi experiencia era sobre porgramación de sistemas empotrados a nivel hardware, en la que a veces se considera a C como un lenguaje de alto nivel y excesivamente ineficiente para ahorrar bits. Descubrí más tarde que nunca había sido un buen programador en C, camuflando así mi ignorancia sobre estructuras, malloc() y free(), setjmp() y longjmp(), y otros conceptos sofisticados, y muriéndome de vergüenza cuando estos términos entraban en una conversación, en lugar de investigar su utilidad.

Cuando comencé mi lucha por aprender C++, el único libro decente era la auto-proclamada Guía de expertos de Bjarne Stroustrup [8] así que simplifiqué los conceptos básicos por mí mismo. Esto se acabó convirtiendo en mi primer libro de C++ [9] , que es esencialmente un reflejo de mi experiencia. Fue descrita como una guía de lectura para atraer a los programadores a C y C++ al mismo tiempo. Ambas ediciones [10] del libro consiguieron una respuesta entusiasta.

Más o menos al mismo tiempo que aparecía Using C++, comencé a enseñar el lenguaje en seminarios y presentaciones. Enseñar C++ (y más tarde, Java) se convirtió en mi profesión; llevo viendo cabezas asintiendo, caras pálidas, y expresiones de perplejidad en audiencias por todo el mundo desde 1989. Cuando comencé a dar formación interna a grupos más pequeños, descubrí algo durante los ejercicios. Incluso aquella gente que estaba sonriendo y asintiendo se encontraba equivocada en muchos aspectos. Creando y dirigiendo las pruebas de C++ y Java durante muchos años en la Conferencia de Desarrollo de Software, descubrí que tanto otros oradores como yo tendíamos a tocar demasiados temas, y todo demasiado rápido. Así que, de vez en cuando, a pesar de la variedad del nivel de la audiencia e independientemente de la forma en que se presentara el material, terminaría perdiendo alguna parte de mi público. Quizá sea pedir demasiado, pero como soy una de esas personas que se resisten a una conferencia tradicional (y para la mayoría de las personas, creo, esta resistencia está causada por el aburrimiento), quise intentar mantener a cada uno a su velocidad.

Durante un tiempo, estuve haciendo presentaciones en orden secuencial. De ese modo, terminé por aprender experimentando e iterando (una técnica que también funciona bien en el diseño de programas en C++). Al final, desarrollé un curso usando todo lo que había aprendido de mi experiencia en la enseñanza. Así, el aprendizaje se realiza en pequeños pasos, fáciles de digerir, y de cara a un seminario práctico (la situación ideal para el aprendizaje) hay ejercicios al final de cada presentación. Puede encontrar mis seminarios públicos en www.BruceEckel.com, y también puede aprender de los seminarios que he pasado a CD-ROM.

La primera edición de este libro se gestó a lo largo de dos años, y el material de este libro se ha usado de muchas formas y en muchos seminarios diferentes. Las reacciones que he percibido de cada seminario me han ayudado a cambiar y reorientar el material hasta que he comprobado que funciona bien como un medio de enseñanza. Pero no es sólo un manual para dar seminarios; he tratado de recopilar tanta información como he podido en estas páginas, intentando estructurarlas para atraer al lector hasta la siguiente materia. Más que nada, el libro está diseñado para servir al lector solitario que lucha con un lenguaje de programación nuevo.



[8] Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley, 1986 (first edition).

[9] Using C++, Osborne/McGraw-Hill 1989.

[10] Using C++ and C++ Inside & Out, Osborne/McGraw-Hill 1993.