Guía rápida para contratar programadores

Slået op d. - Sidst ændret d.

En la actualidad muchos negocios tienen lugar en el mundo virtual. Los sitios web, landing pages, software en la nube y aplicaciones móviles ya no son un tema extraño para las empresas. Cada día es más fácil y existen mejores formas de crear negocios en internet. Si estás pensando en comenzar el tuyo, muy seguro vas a necesitar, en algún momento contratar programadores o desarrolladores de software. A continuación, te vamos a ayudar a entender las diferencias que hay entre los diferentes ámbitos en los que se mueve un programador, cuáles serían las habilidades necesarias que debería tener según tu proyecto o negocio y finalmente algunos consejos para que puedas verificarlas cuando los quieras contratar.

Tipos de programadores

Así cómo hay doctores que se especializan en diferentes partes del cuerpo humano, hay programadores que se enfocan en campos diferentes en el mundo del software. Tenemos entonces tres grandes áreas donde trabajaría un programador: escritorio, web y móvil. Vamos a explicarlos brevemente.

Programador Desktop

Hacen aplicaciones para escritorio usando lenguajes como Java, Visual Basic.Net, C#, C++, Python. Ejemplo de software de escritorio puede ser programas de contabilidad, clientes de correo electrónico(Outlook), navegadores web(Chrome), editores de texto(Word) o editores de imágenes(Ilustrator).

Programador Web

Su enfoque de desarrollo los lleva a usar lenguajes de servidor como PHP, ASP.Net, JSP, Ruby, Python, NodeJS, entre otros. También saben de HTML, CSS, JavaScript y frameworks basados en esos lenguajes. Si lo que necesitas es una aplicación web debes contratar programadores que cuenten con estos conocimientos. Ejemplo de aplicaciones web serían Twitter, Gmail, Facebook o Evernote.

Programador Móvil

Si bien hacen aplicaciones para Android, iOS o Windows Phone  usando lenguajes nativos(Java, C++, Objective-C) también pueden lograrlo con herramientas para crear aplicaciones híbridas como Phonegap, Ionic, Corona SDK, Lungo, jQuery Mobile, entre otras. Ejemplos de aplicaciones móviles serían WhatsApp, Instagram, Uber, Vine y cualquier cosa que puedas instalar en un celular Android, iPhone o Windows Phone.

La especialidad de cada programador

A su vez, los tres tipos anteriores de programadores pueden moverse en las tres siguientes zonas de alguna de las áreas mencionadas:

Programador backend

Es el que trabaja en la parte que se encarga del servidor, manejo de datos y todo lo que represente un soporte base a la aplicación, sea en base de datos o infraestructura. Los programadores backend Generalmente saben sobre motores de bases de datos(MySQL, PostgreSQL, SQL Server, etc), están familiarizados con Apache o nginx, y tienen experiencia con lenguajes como Ruby, PHP, Python, Java. Si bien saben crear aplicaciones desde cero, conocen y entienden los beneficios de usar frameworks.

Programador frontend

Trabaja en la parte que muestra los datos de una aplicación de cara a los usuarios. Su principal labor es la toma y envío de datos, desde y hacia el backend, de la aplicación. Los programadores frontend entienden de APIs, JSON, XML, se mueven muy bien en JavaScript, HTML y CSS. Muy similar a los programadores backend son capaces de escribir su propio código pero comprenden los beneficios de emplear frameworks y librerías (jQuery, Ember, AngularJS) o preprocesadores (Less, Sass, Coffescript).

Programador Full Stack

Es el programador más completo. Sabe y tiene experiencia en backend y en frontend. Ahora, ¿es mejor buscar un desarrollador full stack desde un principio? Pues, no es necesariamente obligatorio que sea así. Un desarrollador frontend o backend son especialistas en sus áreas. Si bien un full stack es más completo, no necesariamente es un especialista. A lo mejor, si tu proyecto es muy grande, tal vez necesites un full stack que se mueva en ambas partes coordinando a un backend o a un frontend.

Cómo describir las necesidades de una empresa para contratar a un programador

Debes comenzar por hacerte varias preguntas antes de pensar en contratar programadores ¿Necesito vender productos desde mi aplicación o página web? ¿Es esta aplicación para mis clientes o para mi fuerza laboral? ¿Necesita mi aplicación tener una versión para dispositivos móviles? ¿Quiero que los usuarios de mi aplicación solo vean información o que también puedan ingresar datos? Preguntas de ese estilo junto con lo descrito anteriormente te ayudarán a saber qué tipo de programador necesitas para tu proyecto. Algo que es muy importante cuando quieras describir tu proyecto es evitar ser ambiguo. Repito, evita las ambigüedades ¿A qué voy con esto? Simple, si hacemos una comparación con el mundo físico y tú le pides a un albañil que necesitas una columna en concreto que mida 50 cms cuadrados de ancho y 4 metros de alto, tanto el obrero como tú saben cómo debería ser el resultado final. Ahora, si le pides a un desarrollador un sitio web donde puedas vender productos, que sea innovador, dinámico y elegante, créeme, que ni tú ni el desarrollador tendrían un mismo concepto sobre lo que sería el resultado final. Es importante que seas lo más claro posible en cuanto a lo que quieres que tenga y haga tu aplicación, portal web o tu proyecto. Al haber claridad, el programador puede determinar con mayor precisión el tiempo que le tomaría hacer tu aplicación, algo que contribuye también a dar un precio adecuado. Lo que en definitiva sería un beneficio para ambas partes. ¿Ves cómo ser más claro, aunque te puede tomar algo de tiempo, puede ser tan beneficioso para ti y tu proyecto?

Habilidades básicas de un programador

Autodidacta: capaz de aprender por si mismo, sea leyendo, viendo vídeos o practicando. Muchos desarrolladores aprenden por sus propios métodos. Curioso: no tiene miedo a probar cosas nuevas. Esto le permite estar en constante aprendizaje y descubriendo nuevas formas de afrontar problemas en el código. El fallar y aprender de los errores hace crecer a un desarrollador de software. Con procesos definidos: quizá esta es una piedra angular. Un desarrollador con procesos bien definidos aprovecha su tiempo y recursos al máximo. Un desarrollador no necesita saber todo de memoria pero sí debe saber dónde encontrar lo que necesita.

Cómo comprobar las habilidades técnicas de un programador

Si bien la mejor forma de comprobar las habilidades que un programador dice tener es pidiendo que escriba un pequeño programa, tal vez en vivo a través de una vídeo llamada o que lo entregue a los pocos días, esto podría ser demasiado complicado. Entonces, ¿de qué forma podrías verificar las aptitudes de un desarrollador? Hay varias formas que te pueden ayudar a tomar confianza.

Cuenta y repositorios en Github o plataformas similares

Veamos, Git es un sistema para el control de versiones y todo programador que se considere profesional debería usar uno, así sea diferente a Git. Por su parte, Github es la plataforma donde se puede guardar proyectos versionados usando Git. En Github un desarrollador lleva un control de los proyectos personales a los que se les llama repositorios. Una forma de ver qué tan activo es un desarrollador o cómo es su forma de trabajar es pidiendo que te facilite un enlace a su perfil en Github donde puedas ver sus repositorios públicos. De un repositorio público puedes ver todo lo que este contenga, incluso, y según el caso, el desarrollador podría indicarte cómo hacer para que ejecutaras alguna de sus creaciones en tu propio ordenador y te hagas una mejor idea de su talento. Ahora, si el desarrollador no cuenta con repositorios públicos pero sí participa en proyectos privados, puedes pedirle una captura de las gráficas donde se muestran las contribuciones que hacen los usuarios al proyecto. Ver el trabajo de un programador es una muy buena forma de comprobar sus aptitudes pero si alguno no usa este servicio no quiere decir que no cuente con ellas. [Tweet "3 consejos para comprobar las habilidades técnicas de un programador #RRHH"]

Blog propio

En donde el programador comparta contenido relacionado a su área. Sean tutoriales, recursos o fragmentos de código que haya usado o conseguido crear. No es necesario que tenga mucha frecuencia pero de esta forma podrás ver que tan involucrado está en lo que hace. Vale aclarar que no todo desarrollador tiene un blog, si lo tiene, es un punto más a su favor.

Anteriores proyectos

En los cuales tenga completa responsabilidad de su mantenimiento o de los cuales participe o participó en algún momento. Un desarrollador que busca mejorar constantemente siempre está haciendo cosas para no perder ritmo, aprender algo nuevo o para jugar con código y divertirse(esto ayuda mucho a probar conceptos o ideas). Estos enlaces a proyectos no necesariamente tienen que ser aplicaciones de miles de usuarios, pueden ser proyectos pequeños donde el programador haya puesto a punto sus conocimientos o quiso conocer una nueva tecnología. ¿Y esto cómo me sirve a mí que necesito un programador? Fácil, un desarrollador activo está en constante aprendizaje ya que, poco a poco, va mejorando sus procesos, descubriendo nuevas y mejores formas de obtener resultados o simplemente, al estar en constante actividad, es un indicativo de que ama y le gusta escribir código.

Conclusión

Es claro que contratar programadores para un proyecto no es una tarea fácil pero sí tenemos formas de hacer el proceso más ameno para encontrar siempre al profesional más idóneo para el trabajo. Todos los puntos anteriores son algunas formas de comprobar las habilidades de un programador y no son palabra tallada en piedra por lo que puedes usarlas cómo te convenga o elaborar un criterio según corresponda. Finalmente, si conoces otras formas de validar las habilidades de un desarrollador o tienes algo que agregarle a lo aquí escrito, te invitamos a que las compartas en los comentarios. Programador GRC

Abonner nu for at få ugentlige opdateringer

Hold dig opdateret med de bedste artikler på Freelancers Community. Abonner nu for at få det bedste design-, udviklings- og freelancing-indhold hver uge.

Næste artikel

¿Qué diferencia a un freelance exitoso?