¡Mándame un mensaje!
Así que quieres ser un Programador...

Traducción libre por J. F. Díaz (jfdiaz98@hotmail.com) del artículo original So you want to be a Programmer... que apareció en la revista electrónica AnalogX.

Introducción
¿Así que piensas que todo esto de la programación es muy bonito, y te gustaría ser parte de ello, eh? Una cosa que a menudo me gusta decirle a la gente justo fuera de la puerta es esto; si amas la programación, entonces este es el mejor trabajo que puedas tener; sería difícil para mí imaginar realmente al4go que pudiera hacer que no fuera crear. Por otro lado, si solo te gusta la programación, o si eres indiferente, este es el peor trabajo que posiblemente podrías encontrar debido a que estás entrando en una arena competitiva donde la obsesión es casi un prerrequisito. El desarrollo de software es casi como una carrera, donde tu vida está en la línea, estás corriendo tan rápido como puedes, y no tienes idea de cómo luce el terreno en frente tuyo; pero con un abandono casi total te lanzas hacia adelante tan rápido sin importar si te enfrentas a una sabana abierta o a un acantilado. Oh, y si tropiezas, se acabó, y todo es tu culpa. ¿Suena un poco temerario? Debería, pero no dejes que te desaliente; Solo no quiero pintarte ningún maravilloso cuadro de libro de historietas donde tecleas felizmente en verdes campos con abultadas nubes blancas en un cielo azul cristal... La realidad es que probablemente esté lloviendo, y tu máquina continúe estrellándose debido a ello; pero este mismo sentido de incertidumbre, desafío, y presión es lo que lo hace tan encantador y divertido.

¿Aún continúas leyendo? Guau, ¡Supongo que eres serio sobre esto! Okey, ahora que te he dado un vistazo de lo que está adelante, hablemos algo sobre tecnología, luego hablemos acerca de la diversión.

¿Qué se requiere para ser un programador?
No creo que hayan características específicas que te excluyan de ser un programador, honestamente pienso que cualquiera con un poco (okey, quizá un montón) de deseo puede hacerlo, es sólo cuestión de cuánto tiempo quieres invertir. Dicho esto, creo que hay varias equivocaciones comunes sobre las habilidades que son un gran 10. Primero, no necesitas ser alguna suerte de sabio de las matemáticas para ser un programador; ciertamente es importante para comprender los fundamentos, y para sentirse cómodo con el álgebra, pero eso es todo. Por supuesto, hay excepciones a esto; por ejemplo, si estás interesado en los gráficos o la programación de juegos, tener fuertes habilidades matemáticas definitivamente te servirán de mucho. Otra equivocación común es que necesitas ser algún tipo de mostruo de la lógica como el Sr. Spock [de la serie Star Trek]; también he encontrado que esto tampoco es generalmente cierto, aunque de nuevo, ciertamente no daña el tener un sentido de 'orden'. Así, ¿qué otras características son deseables? Ser motivado por el desafío es definitivamente un GRAN 10, puesto que básicamente estás entrando en un juego donde eres desafiado en cada esquina. También es muy importante ser implacable en la persecución de tu meta, pero al mismo tiempo ser capaz de permanecer lo suficientemente flexible como para no ser cegado por los límites percibidos. Finalmente, ¡creo que un útil desorden obsesivo-compulsivo corona bien las cosas, dándote extra motivación para llevar las cosas más allá de donde ninguna persona cuerda las llevaría! :)

¿Qué hay de la escuela (la universidad)?
La universidad es un grandioso lugar para aprender sobre los campos, pero la tecnología no es uno de ellos. No me malinterpretes, no estoy diciendo que no creo que la escuela sea importante; al contrario, PIENSO que la escuela es importante, pero no para aprender programación. En lo que deberías enfocarte realmente en la escuela es en aprender a trabajar junto a otros en proyectos, en particular aprender cómo otras personas se acercan a los problemas y cómo ellos difieren de tu aproximación. La universidad también te fuerza a hacer cosas que normalmente no podrías considerar hacer; por ejemplo, recuerdo cuando tomé 'Diseño de Compiladores', que pensé para mí mismo "¡Muchacho, esto es algo inservible! ¡Nunca voy a necesitar hacer esto!", y adivina qué, la mayor parte del tiempo estaba en lo correcto (¡aunque en realidad he tenido que hacer eso en el mundo real!) PERO, lo que aprendí es cómo resolver un conjunto completamente diferente de problemas, y este conocimiento se translada a MUCHAS aplicaciones distintas.

Otra ventaja que obtienes de la universidad es la implementación de redes; no estoy hablando de ese cable ethernet en tu dormitorio, estoy hablando de conocer otras personas que comparten tus intereses, y estarán un día trabajando en la misma industria que tú. La industria de la programación en muchos aspectos es muy parecida a la industria de la cinematografía; cuando alguien se ve involucrado en un buen proyecto, ellos invitan a sus amigos a participar. Si no los conoces, no vas a conseguir ser invitado (contratado), y la universidad en muchos casos es donde los conoces. Otro aspecto que no puede ser descuidado es todo el lado educativo de las cosas; quiero decir, vamos, ellos te enseñan un poquito más que los tecnológicos, cosas como historia, psicología, etc... Y aunque esas cosas pueden no PARECER relacionarse directamente con la programación, te sorprendería de algunas fuentes de inspiración que he tenido.

¿Por dónde debería empezar?
Primero, recomendaría mojar tus pies antes de tomar algunas decisiones trascendentales para tu vida aquí; como dije antes, esta línea de trabajo puede ser divertida, pero también puede ser realmente miserable, así que no solo saltes adentro. La primer cosa por hacer es ir a tu librería local, y comprar un libro sobre programación... Pero hay tantos libros, ¿y qué hay con todos esos diferentes lenguajes? Yo recomendaría apegarte a uno de los siguientes lenguajes: C o C++, Visual Basic, Pascal (Delphi), o Java. Aléjate de cualquier otro, puesto que probablemente no van a darte el mismo nivel de flexibilidad que te darán los antes mencionados, además esos lenguajes tendrás la mayor cantidad de libros de los cuales escoger. Pero hagas lo que hagas, ¡no selecciones un lenguaje por ahora! Sólo estamos probando las aguas, ¿correcto? No estamos escribiendo el próximo Microsoft Office, así que eso no es importante todavía; y sin importar lo que cualquiera diga, esos lenguaje son todos muy similares, y muy poderosos, con aplicaciones comerciales que están escritas con cualquiera de ellos. Okey, así que necesitamos seleccionar un libro, ahora aquí está el método que recomiendo... Elige 2 libros sobre cada uno de los lenguajes que he mencionado arriba, y encuentra un lugar donde puedas Chequearlos en la tienda. Ve libro por libro, y solo zambúllete a través de él, mirando en particular los ejemplos de programación (código fuente) que contienen. Una vez que obtengas una rápida percepción del lenguaje que trata el libro, continúa con el próximo; asegúrate de no invertir más de un par de minutos con cualquiera de ellos. Después que hayas terminado esto, elige el libro del que tienes los mejores presentimientos; cualquier lenguaje que el libro detalle debería ser uno con el que empieces. Ahora, regresa al estante de libros, y elige un par de libros que cubran el lenguaje que has escogido... Toma cada libro y lee parte del primer capítulo; ¿tiene sentido para tí? Si no lo tiene, arroja el libro y continúa con el próximo; si es así, entonces salta a cerca de la mitad del libro, y lee el comienzo de un capítulo de ahí - ¿aún tienen sentido? No trates de comprender exactamente lo que están intentando explicar, pero observa si aún parece tener sentido para ti. Si es así, entonces ya tienes para tí un ganador; continúa eliminando libros usando este método hasta que tengas uno con el que estés realmente feliz, y prepárate para algo de lectura.

Las herramientas del comercio...
Enfrentémoslo, las herramientas correctas pueden hacer el trabajo mucho más fácil; y en ningún lugar esto es tan cierto como en el desarrollo de software. Un upside es que Microsoft ha creado indiscutiblemente el mejor ambiente de desarrollo de los alrededores: Microsoft Developers Studio. Así, si estás usando C o C++, Visual Basic, o Java, esta va a ser probablemente la plataforma que estarás usando. Hay algunas alternativas gratuitas por ahí para alguno de esos lenguajes, así que podrías querer Chequearlas, pero en su mayor parte ellas no están ni siquiera cerca de donde está DevStudio.

Hay otra herramienta que es muy importante, y esa es el editor de código, o en lo que realmente haces toda tu programación. DevStudio viene con un editor interconstruido, y esto es lo por lo que la mayoría de la gente decide usarlo; Personalmente no me gusta estar atado a un ambiente de desarrollo específico, así que prefiero usar un editor llamado MultiEdit, el cual he usado por varios años, y puedo recomendarlo sinceramente a cualquiera que desee una grandiosa alternativa a DevStudio.

Siendo el eterno optimista...
Se dice que el más grande optimista en el mundo es el desarrollador de software - nadie en su sano juicio posiblemente pensaría que sólo el escribir CUALQUIER programa sería posible cuando ves la 'gran escena'. Por ejemplo, mira todos los programas que se ejecutan en el website de AnalogX; ¿cuánto te tomaría escribirlos todos? ¿Es una perspectiva muy dantesca, verdad? Así que ¿cómo lo hice? ¿Algún tipo de dirección superhumana me mantuvo conectando programas, aunque se pensara que parecía imposible? De ninguna manera, ¡aún el más grande optimista tiene sus límites! La clave es ver las cosas no como un todo, sino por partes; por ejemplo, ¿cuánto te tomaría hacer uno de los programas de mi sitio? ¿No parece tan imposible, verdad?

En gran medida, de eso es lo que trata todo el diseño de software; dividiendo un proyecto en pequeñas piezas bien diseñadas... Si no inviertes suficiente tiempo, no vas a ser capaz de comerte todo el pastel, o peor, ¡te atragantarás con una de esas piezas! :) Cuando empiezas a hacer tu primer programa 'real' (es decir, uno que realmente haga algo que la gente podría querer), asegúrate de invertir una razonable cantidad de tiempo planeando cómo vas a hacer las cosas, en qué orden, y qué quieres al final que sea el resultado. Si haces esto, encontrarás que las cosas va mucho más rápido de lo que pensaste que sería posible, y mucho más fácil de lo que podrías haber anticipado.

¡Todo es acerca de trabajo en equipo bebé!
Si estás planeando ser un programador solitario, piénsalo de nuevo, 99.9% de los proyectos involucran EQUIPOS, y como tal necesitas acostumbrarte a trabajar en ellos, y confiar en otros en un proyecto. Una vez que has bajado las armas después de terminar tus propios proyectos pequeños, probablemente sea tiempo para empezar a buscar cómo involucrarte en un equipo de proyecto de algún tipo. Esto podría ser un juego, un demo, o lo que sea; solo asegúrate que sea algo en lo que estés interesado, y que todos los demás también. Hay varias formas de encontrar proyectos; puedes unirte a algunos existentes, buscar alrededor equipos que apenas se estén formando, o incluso empezar el tuyo propio. La cosa importante a observar al aprender de esto es cómo trabajar con otros...

Lecturas Recomendadas...
La lectura es fundamental... Y no creo que sea más aparente que en el desarrollo de software; si no te gusta leer libros, entonces considera hacer algo más, puesto que ellos son clave para que mejores y te percates de tu potencial. ¿Todavía estás preguntándote cómo pude escribir tanto software, en un periodo de tiempo tan corto? Hay tres razones; experiencia, gente brillante con la que he tenido que trabajar, y los libros que he leído. No puedo ayudarte con las dos primeras, pero sí con la última, así que aquí están mis mejores recomendaciones:
Code Complete (Código Completo)
¡Este es indiscutiblemente un OBLIGATORIO para cualquier desarrollador de software, sin importar qué lenguaje de programación use! Cubre muchas prácticas distintas y técnicas relacionadas con el estilo de codificación en un estilo muy imparcial. ¡Máxima calificación!
ISBN: 1-55615-484-4

Rapid Development (Desarrollo Rápido)
La secuencia de Code Complete, este libro está orientado más hacia cómo planear un proyecto, señalar trampas y peligros potenciales, etc. Otro sólido libro cargado de conocimientos acerca de qué se trata realmente el desarrollo de software.
ISBN: 1-55615-900-5

Dynamics of Software Development (Dinámicas del Desarrollo de Software)
Este libro toma una aproximación diferente al desarrollo, enfocándose más en el equipo y en sus dinámicas en lugar de los mecanismos de la programación. Esto a menudo es algo que se descuida, y los resultados son visibles en muchos de los programas liberados estos días. Asegúrate de chequear su website, y en particular el sitio de Teamworx; vale CADA centavo.
ISBN: 1-55615-823-8

The Mythical Man-Month (El Mítico Hombre-Mes)
Este es el libro que realmente empezó todo; aunque fue escrito hace más de 20 años, casi todo en él se aplica hoy en día.
ISBN: 0-201-83595-9

Programming Windows (Programando Windows)
Si vas a ser un programador de Windows (en C o C++), entonces necesitas comprar este libro. Punto. NO hay mejor libro sobre programación de Windows que éste.
ISBN: 1-57231-995-X

The Art of Ware (El Arte del Ware)
Soy un gran fanático de Sun Tzu, así que tengo que decir que estaba emocionado cuando ví este libro. Una lectura muy agradable, con algunas lecciones muy interesantes para aprender al aplicar el Arte de la Guerra, al Arte del Desarrollo del Software.
ISBN: 1-55851-396-5

También quiero tomarme un momento para señalar algo que podrías haber notado ya; una gran cantidad de esos libros vienen de Microsoft Press. Hay una razón por la que son #1, y se debe en gran parte a la cantidad de tiempo que ellos invierten en tratar de determinar cómo hacer las cosas mejor. En general, he encontrado que cada uno de sus libros está pleno de conocimientos y bien valen su precio, más aún porque son escritos por gente que está en las trincheras, y saben cómo funcionan realmente las cosas.

Envuelva...
Espero que esto te haya dado algunas ideas de lo que se requiere para ser un programador, no solo desde un punto de vista tecnológico, sino también desde un punto de vista psicológico. Personalmente encuentro la programación muy gratificante - no hay nada como ver a alguien usar algo que hayas escrito para hacer su vida un poquito mejor. Así, si decides darle persecusión al desarrollo de software, te deseo suerte, y espero que en el futuro tenga la oportunidad de descargar de la Red algo que TU escribiste, desde TU sitio AnalogX! :)

Ultima actualización Lunes, Agosto 20, 2001 10:35:22 PM PST
Copyright ©1998-2003, AnalogX. Todos los derechos reservados.

Lecturas Relacionadas

Cómo ser un Programador. Un Resumen Corto, Comprensivo y Personal

Cómo Convertirse en un Programador

La Programación de Computadoras. ¿Cómo es?

Iniciándose como un Programador de Computadoras

Ir al inicio de este artículo | Volver a Documentos Web
Ir a la Página Principal de NeoProgramadores



alojamiento web gratis
Otros servicios ofrecidos por HispaVista:
Inmobiliaria y Dominios
Consigue una página web gratis o un
alojamiento web profesional con Galeón