¿Desarrollador Principiante (Newbie)? - Permíteme darte un consejo.

Durante mi carrera como desarrollador (14 años y contando) he tenido la oportunidad de encontrarme con muchos retos (no los suficientes), y he tenido la fortuna de poder crear cosas en diferente tecnologías. Aún así no puedo decir que soy un master en programación, pero considero que sí puedo ayudar a los que están empezando...

Primero quiero poner las cartas sobre la mesa… las siguientes líneas pueden no gustarte porque para nada hablan de un mundo ideal donde todo sale tal como lo has imaginado desde que empezaste con tu incipiente carrera como desarrollador, por el contrario, hablan de un mundo en el que las oportunidades “normalmente” son tomadas por los más valientes, los más hábiles o por quienes se saben conocedores de alguna tecnología.

El filtro

Basado en mi experiencia puedo decir que definitivamente el primer “filtro” que se aplica para saber si una persona será o no un desarrollador (ya no digo bueno o malo, sino solo desarrollador) es el gusto por la disciplina, me refiero con esto a que desde que tienes el primer contacto con la programación te das cuenta que tienes que memorizar muchas cosas (muchas veces ni están en tu idioma), entender problemas, crear soluciones y sobre todo pasar horas sentado escribiendo líneas de código. Todo esto te hace tomar una decisión que “generalmente” es muy rápida y optas por decir “esto no es para mí”. Casi nunca te das la oportunidad de revisarlo a profundidad y descubrir las ventajas que puede tener en tu vida ser un desarrollador (claro, siempre y cuando sepas diferenciar la vida social de la vida informática).

Estereotipo

Es muy común que cuando uno es desarrollador tenga que vivir con una lápida de discriminación social, y eso se debe a que “generalmente” se asocia la palabra programador a una persona geek, antisocial, nerd, retraído, huraño, etc… y esto desafortunadamente no es del todo mentira, ya que “normalmente” sabes mucho de video juegos, conoces los conceptos de memes, hipsters, spoilear y otros. Sabes muchos de foros de tecnología o hasta frecuentas 4chan.org, xkcd.com y gizmodo.com para “divertirte”. Todo eso apoya la teoría de que somos geeks porque pasamos mucho tiempo en la computadora y poco tiempo conviviendo con el mundo exterior.

Durante estos años que he estado en este mercado he visto todo tipo de desarrolladores. Siempre hay gente que es “muy buena” para programar pero que le falta la habilidad de comprender lo que el cliente quiere, y viceversa. También hay gente que “medio hace” ambas cosas. Pero no es mi intención entrar en más en detalles de los numerosos casos que pueden presentarse.

La buena noticia

En fin, lo anterior fue solo para que estés consiente de lo que puede venir a tu vida si eres de “los afortunados” que pueden pasar ese primer “filtro”. Sin embargo te puedo decir con gran seguridad que eso puede evitarse, ya que no es necesario que estés mucho tiempo en la computadora practicando o investigando (de hecho ni siquiera el hacer eso es garantía de que lo lograrás) para poder ser un desarrollador muy hábil.

Lo que quiero compartir en este post es que es posible ser un excelente desarrollador sin necesidad de “beberse” los manuales o estar haciendo todos los “hola mundo” que puedas con todos los frameworks que vayas conociendo. Te digo esto porque tengo la fortuna de conocer gente muy brillante en el área de desarrollo de sistemas que para nada parece ser un geek o un nerd o algo parecido, por el contrario, son las personas más sociables que conozco, pero eso sí, la constante es que de inmediato se nota que son personas muy inteligentes y que tienen el cerebro bien aceitado para enfrentar problemas y retos.

El problema

Utópicamente hablando siempre podremos tener un problema para resolver cada que nos encontremos un nuevo framework y de esta forma practicar con él mientras lo tratamos y aplicamos una solución, sin embargo eso no siempre pasa y terminamos solo haciendo un “hola mundo” para conocerlo. Muchas personas me dicen que es mejor hacer un “hola mundo” que nada ya que cuando empezamos somos entusiastas aprendices de programador llenos de júbilo y desesperación por programar "en lo que sea" y poder hacer un "hola mundo" para agregar a nuestros curriculums un framework más. El problema es que cuando nos preguntan para qué utilizamos X framework no podremos decir nada de valor para nuestro posible cliente.

El consejo

Aunque estoy muuuuuuuuy consiente de que existen muchas personas que están sumamente cómodas con su estilo de vida (estereotipo nerd), si quiero externar que hay cosas tan simples que podemos hacer para tener siempre lista nuestra capacidad analítica que nos permitirá desarrollar el potencial de desarrolladores que hay en nosotros pero sin incluir el exclusión social. Les paso los siguientes tips:

  • Ejercita tu cerebro. No tienes que jugar ajedrez (aunque lo recomiendo ampliamente), puedes jugar sudoku, resolver crucigramas, pequeños juegos matemáticos mentales, trata de memorizar nombres de personas desde que te las presentan, habla a todos por su nombre (eso te obliga a usar siempre la memoria secundaria de tu cerebro y ni te das cuenta) y créeme no hay mejor sonido para los oídos de un ser humano que su nombre, así que eso te ayudará a socializar y estarás ejercitando tu cerebro. Algo que me ha funcionado mucho es que cuando quiero comprar algo y no tengo el dinero para adquirirlo nunca digo ¡No puedo comprarlo!, en vez de eso digo ¿Qué puedo hacer para poder comprarlo?. La diferencia está en que la primera frase hace que mi cerebro no trate de encontrar soluciones, se vuelva flojo y no trabaje, la segunda por el simple hecho de ser una interrogante me obliga a pensar en una solución y ejercita mi cerebro.
  • Pseudocódigos. Dale una repasada cuando puedas a los pseudocódigos que viste en la escuela, o mejor aún puedes organizar tu agenda, eventos sociales, sé anfitrión de reuniones. Esto te ayudará a saber qué pasos hay que seguir para lograr un propósito, te mantendrá activo y permitirá que cada vez omitas menos pasos para realizar algo. Sin duda alguna eso puede ayudarte en tu programación porque con forme pase el tiempo te darás cuenta que para muchos eventos los pasos a realizar son muy similares sin importar el tipo de evento, ya que siempre necesitarás rentar un lugar antes de decorarlo, elegir el tema de la fiesta antes de conseguir la música o cosas por el estilo.
  • Lógica. En la medida de tus posibilidades trata de pensar cómo resolverías problemas fueras de tu alcance, me refiero a cosas como “mejorar la presentación de un producto”, “optimizar el tiempo de entrega de un repartidor”, “incrementar la fuerza de ventas de un departamento” , esto no es para que lo resuelvas, pero te garantizo que cuando se presente una oportunidad de aplicar tus conocimientos, sin darte cuenta recordarás que ya habías analizado un problema similar y te será más fácil entenderlo. La ventaja que notarás inmediatamente con la gente que te rodea es que ellos se darán cuenta que sabes “de todo un poco” y eso te aleja más del estereotipo común de desarrollador.
  • Matemáticas. Has el pequeño esfuerzo de hacer cuentas mentales antes de usar una calculadora o Excel. No digo que lo hagas siempre, pero es mejor no depender de tecnología y eso también te ayudar a ser más rápido a la hora de entender reglas de negocio o cosas por el estilo.
  • Inglés. Trata de leer noticias en Inglés por lo menos las de tecnología, esto es como nota para entender mejor los códigos que escribes (me he encontrado con desarrolladores que no saben lo que significa lo que escriben. IF ELSE) .
  • Comparte. Si conoces algo nuevo de tecnología, no trates de memorizarlo siempre y quedártelo para ti solo, te invito a que escribas un post en algún foro para que otros puedan opinar y se madure tu idea para que tengas retroalimentación. Además te servirá para futuras consultas, y eso sin duda optimizará tu tiempo de resolución de dudas en el futuro.
  • ¡Ojo! No estoy reinventando el hilo negro… solo comparto lo que me ha funcionado, espero no ofender a nadie.

    Saludos a todos!

    AdjuntoTamaño
    developers.JPG24.4 KB

    Opciones de visualización de comentarios

    Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
    Imagen de beto.bateria

    Agregando algo para ejercitar

    Agregando algo para ejercitar y cuidar tu cerebro (de una manera divertida):
    Aprende a tocar un instrumento musical, guitarra, bajo, teclado, bateria, etc.
    Tambien te podrias lanzar al paintball, y con tus cuates crea una estrategia para darle en la torre a tus "enemigos", tambien aplica ir al futbol, basquet, etc, pero acuerdate de hacer una estrategia para ganar.

    Para ejercitar esa parte del cerebro que esta subdesarrollada (si adivinaste, la social y emocional), dedicate a las ventas un buen tiempo, de una manera profesional (aunque muchos no van a poder por multiples compromisos), asi aprenderas a controlar la frustacion cuando te manden muy lejos, no contesten tus llamadas, te dejen plantado, etc, tambien aprenderas a ser super organizado y conoceras a lo que yo le llamo "El factor humano" (mis respetos para los vendedores verdaderamente PROFESIONALES).

    Imagen de Sr. Negativo

    Buenas ideas

    De acuerdo al 100% con lo que dices @ehumir

    Imagen de xalCho

    Propongo un híbrido si no eres newbie

    No es que yo sea un nerd, pero me si he tenido episodios difíciles sobre todo por lo que comentas de los conceptos meme y hipster, aquí en la oficina me tachan de inadaptado porque conozco ese tipo de cosas y no comparto su entusiasmo a la hora de salir de antro o cosas por el estilo, pero yo siento que no es malo conocer de muchas tecnologías (aunque tengo que aceptar que las chicas no les llama la atención), por ejemplo siempre se me acerca para preguntarme qué celular deben comprar o sobre qué computadora les conviene más, yo los ayudo con mucho gusto, pero si he sentido que me hace falta saber más acerca de cosas banales, triviales y cultura moderna (hablando de antros, restaurantes, perfumes, ropa, eventos y cosas así).

    Creo que lo conveniente para mi sería hacer una mezcla entre lo que comentas y lo que hago actualmente. Confieso que me gusta probar frameworks nuevos y a veces por hacerlo no asisto a fiestas o reuniones de la oficina.

    Tengo 22 años y llevo 3 años trabajando en la misma empresa, he crecido como desarrollador, pero creo que he descuidado un poco la parte social. Aunque siento que no es tarde para hacer algo. Yo conozco chavos que son desarrolladores (que no considero muy buenos) que salen todos los fines de antro, siempre andan con chicas guapas y tienen el mismo puesto que yo. Tal vez me esfuerzo demasiado y ya es tiempo de cambiar un poco la estrategia.

    Te agradezco el post y por cierto yo no conocía xkcd.com, parece que eres más nerd que yo :p, pero está muy buena la página. Se la pasé a 2 compañeros de trabajo y no entendieron nada. Yo creo que eso es lo principal que hacemos, como sabes más cosas intelectuales nos reunimos con gente con la que si podemos platicar de ese tipo de cosas. Por ejemplo, con quién compartes el xkcd.com ? no creo que cualquiera lo entienda.

    En fin creo que intentaré un híbrido, ya que no soy newbie y probablemente ya estoy enviciado con mi estilo de vida, pero siento que es un buen apunte para aclarar el panorama con los nuevos que quieren entrarle a esto del desarrollo.