You are on page 1of 5

As que quieres ser un Programador...

Traduccin libre por J. F. Daz del artculo original So you want to be a Programmer... que apareci en la revista electrnica AnalogX.

Introduccin As que piensas que todo esto de la programacin es muy bonito, y te gustara 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 programacin, entonces este es el mejor trabajo que puedas tener; sera difcil para m imaginar realmente al4go que pudiera hacer que no fuera crear. Por otro lado, si solo te gusta la programacin, o si eres indiferente, este es el peor trabajo que posiblemente podras encontrar debido a que ests entrando en una arena competitiva donde la obsesin es casi un prerrequisito. El desarrollo de software es casi como una carrera, donde tu vida est en la lnea, ests corriendo tan rpido como puedes, y no tienes idea de cmo luce el terreno en frente tuyo; pero con un abandono casi total te lanzas hacia adelante tan rpido 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? Debera, pero no dejes que te desaliente; Solo no quiero pintarte ningn 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 mquina contine estrellndose debido a ello; pero este mismo sentido de incertidumbre, desafo, y presin es lo que lo hace tan encantador y divertido. An continas leyendo? Guau, Supongo que eres serio sobre esto! Okey, ahora que te he dado un vistazo de lo que est adelante, hablemos algo sobre tecnologa, luego hablemos acerca de la diversin. Qu se requiere para ser un programador? No creo que hayan caractersticas especficas que te excluyan de ser un programador, honestamente pienso que cualquiera con un poco (okey, quiz un montn) de deseo puede hacerlo, es slo cuestin de cunto 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 matemticas para ser un programador; ciertamente es importante para comprender los fundamentos, y para sentirse cmodo con el lgebra, pero eso es todo. Por supuesto, hay excepciones a esto; por ejemplo, si ests interesado en los

grficos o la programacin de juegos, tener fuertes habilidades matemticas definitivamente te servirn de mucho. Otra equivocacin comn es que necesitas ser algn tipo de mostruo de la lgica como el Sr. Spock [de la serie Star Trek]; tambin he encontrado que esto tampoco es generalmente cierto, aunque de nuevo, ciertamente no daa el tener un sentido de 'orden'. As, qu otras caractersticas son deseables? Ser motivado por el desafo es definitivamente un GRAN 10, puesto que bsicamente ests entrando en un juego donde eres desafiado en cada esquina. Tambin es muy importante ser implacable en la persecucin de tu meta, pero al mismo tiempo ser capaz de permanecer lo suficientemente flexible como para no ser cegado por los lmites percibidos. Finalmente, creo que un til desorden obsesivo-compulsivo corona bien las cosas, dndote extra motivacin para llevar las cosas ms all de donde ninguna persona cuerda las llevara! Smiley Qu hay de la escuela (la universidad)? La universidad es un grandioso lugar para aprender sobre los campos, pero la tecnologa 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 programacin. En lo que deberas enfocarte realmente en la escuela es en aprender a trabajar junto a otros en proyectos, en particular aprender cmo otras personas se acercan a los problemas y cmo ellos difieren de tu aproximacin. La universidad tambin te fuerza a hacer cosas que normalmente no podras considerar hacer; por ejemplo, recuerdo cuando tom 'Diseo 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 cmo 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 implementacin de redes; no estoy hablando de ese cable ethernet en tu dormitorio, estoy hablando de conocer otras personas que comparten tus intereses, y estarn un da trabajando en la misma industria que t. La industria de la programacin en muchos aspectos es muy parecida a la industria de la cinematografa; 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 ensean un poquito ms que los tecnolgicos, cosas como historia, psicologa, etc... Y aunque esas cosas pueden no PARECER relacionarse directamente con la programacin, te sorprendera de algunas fuentes de inspiracin que he tenido.

Por dnde debera empezar? Primero, recomendara mojar tus pies antes de tomar algunas decisiones trascendentales para tu vida aqu; como dije antes, esta lnea de trabajo puede ser divertida, pero tambin puede ser realmente miserable, as que no solo saltes adentro. La primer cosa por hacer es ir a tu librera local, y comprar un libro sobre programacin... Pero hay tantos libros, y qu hay con todos esos diferentes lenguajes? Yo recomendara apegarte a uno de los siguientes lenguajes: C o C++, Visual Basic, Pascal (Delphi), o Java. Aljate de cualquier otro, puesto que probablemente no van a darte el mismo nivel de flexibilidad que te darn los antes mencionados, adems esos lenguajes tendrs la mayor cantidad de libros de los cuales escoger. Pero hagas lo que hagas, no selecciones un lenguaje por ahora! Slo estamos probando las aguas, correcto? No estamos escribiendo el prximo Microsoft Office, as que eso no es importante todava; y sin importar lo que cualquiera diga, esos lenguaje son todos muy similares, y muy poderosos, con aplicaciones comerciales que estn escritas con cualquiera de ellos. Okey, as que necesitamos seleccionar un libro, ahora aqu est el mtodo 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 zambllete a travs de l, mirando en particular los ejemplos de programacin (cdigo fuente) que contienen. Una vez que obtengas una rpida percepcin del lenguaje que trata el libro, contina con el prximo; asegrate de no invertir ms de un par de minutos con cualquiera de ellos. Despus que hayas terminado esto, elige el libro del que tienes los mejores presentimientos; cualquier lenguaje que el libro detalle debera 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 captulo; tiene sentido para t? Si no lo tiene, arroja el libro y contina con el prximo; si es as, entonces salta a cerca de la mitad del libro, y lee el comienzo de un captulo de ah - an tienen sentido? No trates de comprender exactamente lo que estn intentando explicar, pero observa si an parece tener sentido para ti. Si es as, entonces ya tienes para t un ganador; contina eliminando libros usando este mtodo hasta que tengas uno con el que ests realmente feliz, y preprate para algo de lectura. Las herramientas del comercio... Enfrentmoslo, las herramientas correctas pueden hacer el trabajo mucho ms fcil; y en ningn 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 ests usando C o C++, Visual Basic, o Java, esta va a ser probablemente la plataforma que estars usando. Hay algunas alternativas gratuitas por ah para alguno de esos lenguajes, as que podras querer Chequearlas, pero en su mayor

parte ellas no estn ni siquiera cerca de donde est DevStudio. Hay otra herramienta que es muy importante, y esa es el editor de cdigo, o en lo que realmente haces toda tu programacin. DevStudio viene con un editor interconstruido, y esto es lo por lo que la mayora de la gente decide usarlo; Personalmente no me gusta estar atado a un ambiente de desarrollo especfico, as que prefiero usar un editor llamado MultiEdit, el cual he usado por varios aos, y puedo recomendarlo sinceramente a cualquiera que desee una grandiosa alternativa a DevStudio. Siendo el eterno optimista... Se dice que el ms grande optimista en el mundo es el desarrollador de software - nadie en su sano juicio posiblemente pensara que slo el escribir CUALQUIER programa sera posible cuando ves la 'gran escena'. Por ejemplo, mira todos los programas que se ejecutan en el website de AnalogX; cunto te tomara escribirlos todos? Es una perspectiva muy dantesca, verdad? As que cmo lo hice? Algn tipo de direccin superhumana me mantuvo conectando programas, aunque se pensara que pareca imposible? De ninguna manera, an el ms grande optimista tiene sus lmites! La clave es ver las cosas no como un todo, sino por partes; por ejemplo, cunto te tomara hacer uno de los programas de mi sitio? No parece tan imposible, verdad? En gran medida, de eso es lo que trata todo el diseo de software; dividiendo un proyecto en pequeas piezas bien diseadas... Si no inviertes suficiente tiempo, no vas a ser capaz de comerte todo el pastel, o peor, te atragantars con una de esas piezas! Smiley Cuando empiezas a hacer tu primer programa 'real' (es decir, uno que realmente haga algo que la gente podra querer), asegrate de invertir una razonable cantidad de tiempo planeando cmo vas a hacer las cosas, en qu orden, y qu quieres al final que sea el resultado. Si haces esto, encontrars que las cosas va mucho ms rpido de lo que pensaste que sera posible, y mucho ms fcil de lo que podras haber anticipado. Todo es acerca de trabajo en equipo ! Si ests planeando ser un programador solitario, pinsalo 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 despus de terminar tus propios proyectos pequeos, probablemente sea tiempo para empezar a buscar cmo involucrarte en un equipo de proyecto de algn tipo. Esto podra ser un juego, un demo, o lo que sea; solo asegrate que sea algo en lo que ests interesado, y que todos los dems tambin. Hay varias formas de encontrar proyectos; puedes unirte a algunos existentes, buscar alrededor equipos que apenas se estn formando, o incluso empezar el tuyo propio. La cosa importante a observar al aprender de esto es cmo trabajar con otros...

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 tecnolgico, sino tambin desde un punto de vista psicolgico. Personalmente encuentro la programacin 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 persecusin 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!

You might also like