3 Cualidades que te ayudarán a ser mejor profesional en la Industria de la Tecnología

by hectorfabiopv

Actualmente soy desarrollador de aplicaciones web. Mi trabajo ha requerido de mí programar en diferentes lenguajes de programación como Java, PHP, Python y JS.

He estado colaborando en analizar requerimientos, escribir en el front y el back, construir y consultar bases de datos, estar en reuniones con clientes y todo lo que conlleva la ardua tarea de desarrollar un producto de software de calidad.

Dado lo anterior es fácil deducir que como programador y, por extensión, como arquitecto de software, como administrador de redes, como scrum master y como cualquier persona que tome un rol en un equipo que trabaje en la industria de la tecnología, se requiere de un conjunto de conocimientos técnicos para desempeñar correctamente las labores del día a día en nuestro trabajo.

Sin embargo, creer que es suficiente con el conocimiento técnico, es un error.

Acompañame a explorar estas tres cualidades que con la corta experiencia que tengo en el sector he aprendido que aplicarlas nos ayuda a mejorar.

Hágamoslo.

Perseverancia

Desde luego que en todas las áreas laborales se requiere de algún tipo de esfuerzo repetitivo.

No obstante, ser creador de tecnología implica trabajo firme y constante. No cabe la posibilidad de perder los estribos y abandonar cuando las cosas empiezan a salir mal.

Es poco profesional brindar una solución pobre, simplemente porque buscar la mejor solución va a requerir de forzarnos hasta el límite.

Nuestro trabajo es hacer más fácil la vida de otros, no la nuestra; es por esto que, más nos vale entender que ser perseverantes nos ayudará a mejorar en cualquiera que sea el rol que desempeñemos en el equipo.

Generosidad

Si no hubieran existido personas dispuestas a compartir el conocimiento con los demás de una manera muy desinteresada y movidos por la generosidad, el mundo de la tecnología sería algo muy diferente a lo que es hoy en día.

Los puestos de la industria estarían destinados única y exclusivamente a los más privilegiados y no al acceso de muchas personas.

Es por esto que, en la búsqueda de contribuir a seguir cultivando una comunidad mucho mejor, debemos tener en cuenta que guardarnos todo no tiene sentido.

Es importante compartir con los demás todo aquello que legalmente se pueda compartir, claro está, no sería propio divulgar propiedad intelectual con terceros; pero si podemos ayudar a un colega cuando tenga algún error o cuando nos pida consejos acerca de cómo mejorar en algún aspecto.

Humildad

Todos en algún momento nos sentimos emocionados al poder ejecutar un snippet exitosamente, o al levantar nuestro primer contenedor, al dirigir el primer scrum daily o al configurar nuestro primer servidor.

No olvidemos que en algún momento no sabíamos y aprendimos.

Por otro lado, sería necio de nuestra parte creer que una persona que está iniciando no pueda tener una idea mejor que la nuestra. Es perfectamente posible, asúmelo y aprende de los demás.

Estoy plenamente seguro de que sacaremos más provecho de tratar de aprender de otros, que de pensar en que nuestra forma de resolver es la mejor porque tenemos experiencia.

También estoy seguro de que las cualidades que acabo de mencionar en esta entrada no son las únicas que nos pueden ayudar, de hecho, me ayudaría a mejorar, si mencionas en los comentarios alguna otra cualidad que consideres importante.

Gracias de antemano.

El bug invisible – Qué hacer cuando no encontramos el error en el código de nuestra aplicación

by hectorfabiopv

Como programadores existen ocasiones en las que nos topamos con errores en nuestros desarrollos que parecen imposibles de resolver, debido a que luego de buscar el problema durante un buen rato, no encontramos una solución.

¿Qué debemos hacer cuando nos encontramos con un problema que no logramos solucionar?

La anterior es una lista de actividades que he preparado y que en lo personal me han servido de manera eficaz y eficiente cuando me he enfrentado a bugs invisibles. Además, tengo plena seguridad de que le pueden ayudar a desarrolladores de cualquier nivel cuando se enfrentan a un problema de programación.

Empecemos:

Toma un descanso

Pasamos gran parte de nuestro tiempo en nuestro trabajo analizando, diseñando, escribiendo código y probando el mismo; por lo que, es natural que tras una larga jornada de programación nos sintamos fatigados y nos cueste encontrar incluso el punto y coma al inicio de un script.

En esos casos, no es conveniente seguir insistiendo, sencillamente porque no somos robots y necesitamos también de periodos en los que cambiemos nuestro ambiente.

A veces basta simplemente con que nos levantemos de la silla, caminemos un poco, tomemos un poco de aire, nos alejemos de la pantalla así sea por un breve periodo de tiempo y definitivamente dejemos de pensar en encontrar la solución.

Es necesario que olvidemos aquello que nos está bloqueando y nos esforcemos por apartar nuestros pensamientos del editor de texto o IDE y hagamos una actividad diferente, así sea socializar un poco con otra persona. Esto, contrario a lo que puede parecer en principio, resultará en un ahorro de tiempo.

Me ha sucedido que luego de tomar un descanso y regresar al escritorio de trabajo, un problema en el que llevaba horas, me toma cuestión de minutos resolver.

Deja de teclear y escribe con el lápiz

Programar no se trata únicamente de estar frente a la pantalla de la computadora y escribir sentencias en algún lenguaje de programación, si ese es tu pensar, deberías buscar la manera de convertirte en una máquina de transcripción y no en un desarrollador.

Los desarrolladores buscamos solución a los problemas, lo que implica aparte de escribir el código, analizar qué factores hay que tener en cuenta, por lo que a veces, plasmar nuestros pensamientos sobre el papel puede ayudarnos a aclarar nuestras ideas.

Escribir el algoritmo en lenguaje natural puede ayudarnos a ver que tal vez el error no está en el código, sino entre el escritorio y la silla, es decir, hemos analizado mal el problema y por ende, la solución está mal orientada y propensa a errores.

Otra herramienta útil es elaborar proposiciones. Esto puede ayudarnos a encontrar los valores de verdad resultantes de ejecutar la funcionalidad que estamos desarrollando, así pues, si “carrito de compras tiene productos” y “todos los productos tienen un valor” entonces “el total del carrito de compras es mayor a cero”.

Piensa por fuera de la caja

Cuando alguien de Linux menosprecia a alguien que utiliza Windows (si, lamentablemente aún existen este tipo de infantiles), me causa gracia el hecho de que ellos quizás piensen que el usar Linux los hace superiores; sin embargo, no es así.

Lo anterior no solamente los muestra como programadores con prejuicios absurdos, sino que además demuestra que son personas poco profesionales por tener falta de flexibilidad al trabajar. También es posible que tengan bloqueos por falta de pensar por fuera del contexto en el que están.

El punto es que no buscan soluciones alternativas con herramientas diferentes a las que comunmente utilizan.

Debes estar dispuesto a pensar que el problema quizás no esté directamente relacionado con el fragmento de código que acabas de escribir, es posible que estés usando una función propia del lenguaje de programación o framework que ya no sea compatible con las versiones que tienes instaladas en tu entorno de trabajo.

Hay que tener en cuenta que tal vez no estemos utilizando la herramienta más adecuada para la necesidad que se tiene.

Por otro lado, tampoco debes cerrarte a una sola forma de solucionar el problema, es decir, piensa en maneras diferentes de solucionarlo. De hecho, es posible que se te ocurra una manera más eficiente de abordar un requerimiento específico.

Otro de los errores que podemos cometer ante un bloqueo en alguna funcionalidad es probar vez tras vez lo mismo, por ejemplo, diligenciar el formulario varias veces sin hacer cambios en el HTML o en el back, evita esto, pues es claro que hay algo que no está funcionando correctamente.

Una buena manera de abordar el problema es aislando piezas de código y probándolas por separado, al realizar esta actividad, tal vez te des cuenta de que una función está haciendo más cosas de las que debería, y esto va en contra por ejemplo, del primero de los principios SOLID en la programación.

Busca ayuda externa

Independientemente de si trabajamos en un equipo o de manera solitaria (Lo cual no es lo más común), debemos reconocer de que no somos todopoderosos y de vez en cuando podemos enfrentarnos a muros que van más allá de nuestras capacidades profesionales actuales.

Es por esto que, ir en busca de ayuda es un factor útil del que podemos valernos a la hora de tratar de encontrar el bug invisible.

En mi caso actualmente trabajo desde casa; sin embargo, esto no representa un impedimento a la hora de necesitar ayuda de mis compañeros de trabajo.

Cuando no encuentro la forma de solucionar por mis propios medios, recurro al chat para escribirles y solicitar ayuda.

Te darás cuenta de que si tienes compañeros realmente profesionales, por lo general, estarán dispuestos a ayudarte siempre y cuando tu realmente hayas tratado de solucionar por tu cuenta.

También, puedes buscar ayuda en la internet en sitios como Stackoverflow, DigitalOcean, entre otros.

Por otro lado, acota el problema. Es importante reducir el número de variables de salida cuando se trata de un error en nuestro código.

Es útil evitar la pluralidad de resultados, así pues, si una función que comprueba si un usuario existe o no en la aplicación retorna un booleano, no podemos darle cabida a que también retorne una excepción personalizada, lo mejor es retornar true o false, y encargarnos de las excepciones personalizadas en otra de las funciones.

Y estos fueron los tips que podemos seguir a la hora de enfrentarnos a un error que se resiste a ser encontrado. Estoy seguro de que algunos de ustedes pueden tener sus propios trucos, por lo que, sería muy interesante que los compartieras en la sección de comentarios.

3 Pasos para conseguir trabajo como programador sin experiencia

by hectorfabiopv

No hay receta perfecta para obtenerlo. Conseguir trabajo sin experiencia es uno de los retos de la vida más importantes, que todos tendremos que enfrentar en algún momento.

A falta de ciencia exacta para ello, podemos valernos de la experiencia de otros para aumentar las posibilidades. Quiero compartirte trucos que a mí me funcionaron. Continua la lectura.

“No consigo trabajo como programador porque siempre solicitan tener experiencia, y no tengo experiencia porque no he tenido un trabajo” – Esa es una de las frases que estoy seguro que tu y yo habremos escuchado a alguien decir; de hecho, tal vez la habremos dicho nosotros mismos.

Naturalmente esto es algo que se presenta en todas las áreas de trabajo existentes; sin embargo, es curioso que en el campo de la tecnología sea común que en algún momento nos hagamos la pregunta: ¿Y cómo consigo mi primer trabajo como programador si no tengo experiencia?

Es por eso que en esta ocasión, basado en mi experiencia personal, he pensado en un “algoritmo” que nos ayude a solucionar este problema. Tengo para ti tres pasos que todos podemos realizar para aumentar las probabilidades de obtener un empleo como desarrollador, ellos son:

  1. Mejora tus habilidades técnicas
  2. Optimiza tu imagen personal
  3. Trabaja en tus relaciones profesionales

Mejora tus habilidades técnicas

Fuera del laboratorio académico, en el mundo real, nos encontraremos con que para ser un profesional en el desarrollo de software tienes que estar en constante aprendizaje.

Debes estar actualizado con las últimas tendencias, lo más requerido en el mercado, saber que no es suficiente con obtener una solución sino con obtener la mejor solución a un problema dado, entre otras cosas.

Por lo tanto, repasa los fundamentos de programación, los algoritmos de ordenamiento, las estructuras de datos, las estructuras de control, mantente en proyectos de desarrollo, se requiere que analices problemas, que diseñes soluciones y que escribas código regularmente.

Los grandes atletas no se hicieron así mismos practicando porque había un certificado al final de “X” semestres de entrenamiento, ellos se hicieron así mismos practicando constantemente, porque saben que hacen parte de una carrera que va más allá de un trofeo.

Tu también debes saber que no realizas proyectos solamente porque te vas a graduar y obtener un título, se trata de que vas a dedicar tu vida a solucionar problemas, por lo que, más te vale hacerlo lo mejor posible y luego…mejorarlo.

De cara a las personas que buscan nuevos talentos para contratar, alguien que se interesa de forma genuina por mejorar y que se esfuerza por hacerlo, es mejor que alguien con “talento innato” que se conforma con lo que ya sabe.

Optimiza tu imagen personal

No tener experiencia laboral no implica que aún no tengas experiencia como programador.

¿Cómo es eso posible?

De seguro has desarrollado algún proyecto académico del cual te sientes orgulloso porque trabajaste con esmero por sacarlo adelante. Quizás en alguna ocasión quisiste iniciarte en el mundo del desarrollo de videojuegos y comenzaste un proyecto el cual no has terminado.

Termina aquel proyecto inconcluso y compártelo con la comunidad. Muchas veces, la mejor carta de presentación para un reclutador o futuro jefe es mostrar en la Internet lo que sabes.

Revisa tu hoja de vida, ¿Tiene más de dos páginas? Entonces se puede optimizar. Créeme cuando te digo que si aún no tienes experiencia laboral, una página te basta y te sobra para expresar toda esa buena primera impresión que necesitas dejarle al reclutador.

De hecho, la hoja de vida debe ser estrictamente breve, los reclutadores se sentirán bien al poder analizar toda tu información a golpe de vista y no tener que hojear cincuenta veces para darse cuenta que eres una persona que aún no se ha integrado al mundo laboral.

Por último, no te olvides de mejorar tu nivel de inglés. Te invito encarecidamente a que lo estudies como una disciplina más que de seguro te complementará enormemente como profesional.

Trabaja en tus relaciones profesionales

Algunas veces las mejores ofertas no se publican en plataformas de búsqueda de empleos, sino que más bien se dan a conocer mediante referidos.

También es probable que algunos de tus compañeros de estudios ya hayan encontrado algún empleo como desarrolladores. Por lo que, hablar con ellos y solicitar su ayuda puede aumentar las posibilidades de hallar un empleo.

Creer que los programadores somos seres aislados de todo circulo social existente y que nuestro trabajo no requiere de relaciones interpersonales es un pensamiento muy alejado de la realidad.

Lo cierto es que por experiencia propia he visto grandes productos de software desarrollados por programadores talentosos, los cuales, no lograron vender lo suficiente como para continuar con el proyecto.

Por otro lado, he visto proyectos de calidad mediocre que han sabido explotar en el mercado y que han logrado muchas ventas.

Dicho de otra forma: No basta con que tengas talento como programador si luego no sabes relacionarte con tu entorno; el trabajo como desarrollador rara vez se ejecuta de manera individual.

Los proyectos por lo general son realizados en equipos, y requieren de constante comunicación. Así que trabajar en tus relaciones profesionales es algo que va a ayudarte a estar muy preparado tanto para hablar en una entrevista de trabajo como para luego trabajar con un buen desempeño.

Y esos fueron los tres pasos que en lo personal me funcionaron de manera excelente cuando yo no tenía experiencia. Me encantaría que los practiques.

Como lo dije anteriormente, todos tendremos que pasar por ese proceso, y todos podemos hacer algo para aumentar nuestras probabilidades de conseguir empleo en la industria de la tecnología.

Aún así, no hay receta perfecta, y no hay una ciencia exacta, por lo que te animo a que me compartas los tips que te hayan funcionado a ti, así todos podremos aprender.