programming-00

Con relativa frecuencia algunos lectores me preguntan qué pasos deben seguir para aprender a programar una computadora. Muchos de ellos están indecisos sobre qué lenguaje es el adecuado, C++, por ejemplo, o bien, si deben usar Python. Me piden información sobre algún lenguaje de programación en particular y además, en muchas ocasiones casi se me obliga a que les dé títulos de libros que puedan descargar de algún sitio web.

Responder a las inquietudes de quienes me han escrito me hace pensar que hay más interés en este tema de la programación del que al menos yo esperaría. Digamos que hoy en día no es mala idea aprender a programar, como tampoco es mala idea aprender algo de mecánica, por si se descompone el coche. Pero el mundo moderno nos ha hecho en algún sentido “analfabetas funcionales”, y evidentemente podemos ir por la vida sin necesidad de crear código, aunque no estaría de más saber un poco cómo programar algunas acciones que los programas normales no hacen por uno.

Mi elección de lenguaje a desarrollar se inclinaría por Java, C o Pascal. Olvidemos el Visual Basic que -aunque ha mejorado considerablemente con el tiempo- no es estándar con nadie más. Pero abundemos un poco en las razones: me es claro que se necesita un lenguaje que contenga cierta expresividad, es decir, que con él podamos decir cosas en programación. Para ello requerimos que de entrada, tenga una serie de estructuras de datos. Lenguajes como el Basic estándar sólo tienen arreglos como su estructura de datos más usada, pero no contempla estructuras de datos dinámicas, asunto que es de primordial importancia en el mundo moderno del cómputo.

Hoy en día tenemos mucha memoria en nuestras máquinas y más aún en nuestros discos duros, pero evidentemente los programas deben correr en una cantidad razonable de memoria. Por ejemplo, debido a que usamos sistemas operativos multitareas e incluso multiusuarios, no podemos darnos el lujo de apartar toda la memoria disponible para nuestra aplicación. De hecho, muchos compiladores podrían negarse a crear, por ejemplo, un arreglo estático que sea muy grande o peor aún, me marque un error irrecuperable del sistema por quererme “apañar” toda la memoria disponible. Actualmente tenemos que pensar en usar estructuras dinámicas, que vayan creciendo de acuerdo a las necesidades de nuestro sistema. ¿Requerimos más memoria? entonces el sistema nos la va a dar, pero no a priori nos vamos a encargar de apartarla para “no quedarnos cortos”. Esto último es sin duda absurdo en la programación moderna. Un ejemplo de este acceso a memorias de manera dinámica puede verse en programas como Word o mejor aún, Excel. Consideren en este último la cantidad de renglones y columnas que pueden tener. Probablemente su computadora no tenga tanta memoria en RAM y sin embargo funciona, ¿no?

Desde luego que cuando hablamos de elegir un lenguaje para programar, tenemos que pensar en qué aplicación queremos desarrollar. No suena razonable, por ejemplo, tratar de usar C si queremos hacer programas que mejor podrían resolverse con técnicas de la inteligencia artificial. En este caso es mejor pensar en usar Prolog, por ejemplo.

Información sobre el lenguaje que se quiera aprender, hay por toneladas en la red literalmente. Basta con navegar un rato y buscar sitios en donde hay clases en línea, libros en PDF, herramientas de programación -muchas veces gratuitas- para aprender cualquier lenguaje en boga.  Pero más importante aún, creo yo, es la motivación para aprender a programar en un lenguaje determinado. Probablemente para ello la mejor idea sea la de primero, hacerse de un proyecto, algo que queramos programar y que no encontramos su equivalente en la red o bien, no hay ningún programa que satisfaga nuestras expectativas.

Es curioso pero por años he leído cómo importantes programadores empezaron así sus carreras como desarrolladores: tenían una idea a programar y no sabían cómo llevarla a cabo. De verdad, no hay mejor manera que motivarse a la programación cuando se quiere ver plasmado en código una idea para una aplicación que haga algo interesante. Y es aquí donde nacen los verdaderos programadores, aquellos que tienen la curiosidad suficiente para tratar de desarrollar en un lenguaje de programación una idea, aunque no sepan siquiera si se puede realizar o no. Eventualmente con Internet a la mano, irán encontrando material y llegarán a caminar por donde está la información que necesitan.

Y falta algo más: constancia. La programación no se aprende de un momento a otro. Se requiere de práctica, de disciplina, y poco a poco las ideas se irán acomodando en nuestros cerebros. Eventualmente será como aprender a “hablar” en un nuevo idioma, válga la analogía. Y con el tiempo se verá que todo el trabajo y esfuerzo invertido da buenos frutos. Por eso, aparte de lo que pueda haber dicho antes, la esencia de todo esto de programar computadoras es involucrarse. Si no se logra eso, mejor cambiar de actividad.

Enlaces Patrocinados
Comentarios