El Caso de PHP y los Salarios

Publicado en

Como programador uno se pregunta ¿en qué lenguaje debo invertir mi tiempo? es cierto que no existe el lenguaje perfecto y que la elección usualmente es basada en preferencias personales o en el tipo de problema a resolver, sin embargo, existe otro punto a tomar en cuenta: el financiero, o en términos simples, ¿en qué lenguaje debo especializarme para ser mejor pagado?

Y es donde nos preguntamos ¿por qué muchos empleadores pagan más a programadores especializados en ciertos lenguajes que en otros? ¿qué es más importante a ser tomado en cuenta a la hora de establecer tabuladores salariales: la experiencia del programador, lo complejo de la tarea a realizar, o el lenguaje de programación a usar? Si se contrata a un carpintero, no se le contrata debido a que utiliza martillos Stanley o destornilladores Craftsman, se le contrata porque sabe hacer bien su trabajo y da resultados. Si lo mismo aplícase a los programadores, entonces ¿por qué muchas empresas en México aún insisten en pagar tarifas basadas en el lenguaje de programación?

Y ¿qué tiene que ver PHP en lo anterior? pues resulta que es uno de los lenguajes con el que los programadores salen más afectados en términos financieros. PHP es un lenguaje interpretado fácil de aprender, flexible y se puede desarrollar con él en tiempos muy cortos, además es genial para utilizarse como pegamento entre aplicaciones. Siendo así, ¿por qué es prácticamente considerado inferior?

Técnicamente el lenguaje nació para desarrollo web, fue creciendo y adaptándose a las necesidades de los desarrolladores. Muchos desarrolladores expertos en otros lenguajes lo critican por haberse vuelto popular muy rápido sin tener una base tan sólida y reglas estrictas como en los lenguajes de uso general, solo que en su afán por establecer que PHP está mal olvidan no fue planeado como un lenguaje de uso general, sino para facilitar el desarrollo web.

Entonces ¿PHP es técnicamente inferior? No, el motivo por el que es criticado está principalmente basado en un círculo vicioso generado por los programadores novatos. ¿Cómo es esto?, cuando un novato generalmente no presta atención en la calidad de sus entregables, se enfoca únicamente en terminar lo que le piden sin añadir ningún valor agregado a su trabajo, ¿el resultado? programas en estilo código spaghetti, estructuras mal aplicadas, carencia de optimizacion, entradas de datos inseguras, y un sinfín de “características” más.

Lo anterior obviamente repercutirá en el desempeño del programa y en el costo de mantenerlo. Sin embargo, curiosamente el enfoque no es dirigido hacía el programador novato, sino sobre el lenguaje.

Así entonces mientras más novato el programador peor calidad de código, ante inferior calidad más desconfianza se genera en el lenguaje, al existir desconfianza en el lenguaje menor es la apuesta en términos salariales, a menores salarios los programadores con experiencia y enfoque en la calidad se interesan menos en el lenguaje, a menor cantidad de programadores con experiencia mayor contratación de programadores novatos, a mayor cantidad de programadores novatos peor calidad de código y de ese modo el ciclo va degradando el valor salarial sobre el uso del lenguaje.

Por si fuera poco, el programador novato llega a creer que lo que hace es todo lo que se puede hacer con PHP, incluso hay quienes colocan en su currículo el adjetivo “experto en PHP” o “nivel avanzado en PHP”, y al considerarse a sí mismos expertos no se esfuerzan en aprender más, ni en mejorar la calidad de su trabajo. Sin embargo más allá de sólo exponer el problema ¿cómo se pudiera convertir el círculo vicioso en uno virtuoso?

Mientras mayor calidad y valor agregado ofrezca el programador, mejores resultados verá el empleador, a mejores resultados el empleador debe ofrecer un mejor salario, con mejores salarios en el mercado, más programadores con experiencia y enfoque en calidad se verán interesados, así como los programadores novatos en mejorar la calidad de su trabajo para llegar obtener dichos salarios, a mayor cantidad de programadores con experiencia, mayor calidad en el código y mayor valor agregado, y de ese modo el ciclo va enriqueciendo la calidad de los entregables y el valor salarial.

Un buen punto de arranque para comenzar a cambiar el ciclo es reconocer en donde se encuentra actualmente el programador y fijar metas para mejorar. Basado en lo anterior surgió en el grupo de programadores de “PHP México” una iniciativa para definir un tabulador sencillo basado en los conocimientos y capacidades de los programadores, lo presento a continuación.

  • Novato. Generalmente escribe PHP, SQL y HTML/JS/CSS en el mismo archivo y acostumbra a copiar y pegar cualquier cosa que se encuentra en internet que parecer hacer lo que se le pidió entregar y que según dicen los foros es la solución.

  • Aprendiz. Ha aceptado que necesita mejorar y decide aprender mejores prácticas y aplicarlas. Consulta en foros no para buscar codigo para copiar y pegar, sino para analizarlo y pregunta después de haber investigado por cuenta propia.

  • Junior. Sabe qué son los patrones de diseño y los utiliza, entiende qué es MVC, REST, CRUD, ORM, SQL Injection, XSS, I/O Sanitization, etcétera, y usa estas y otras técnicas, así como mejores prácticas; es excelente aprendiendo y usando APIs de terceros.

  • Senior. Es capaz de desarrollar sus propias herramientas y APIs; es consciente de cómo funciona PHP internamente, está sumamente interesado en el desempeño de las aplicaciones más allá de su facilidad de desarrollo; no está satisfecho con el funcionamiento de todas las herramientas y APIs de terceros tal cual vienen y siempre busca innovar y crear cosas que mejoren el desempeño, faciliten su trabajo y la velocidad de sus entregables; contribuye con código en diferentes proyectos y comunidades; entiende la frase “PHP es el frontend de su backend”.

  • Master. Es capaz de desarrollar sus propias extensiones para PHP en C, contribuye a PECL y normalmente se dedica a mejorar el desempeño de aplicaciones de alto rendimiento. Conoce bien el lenguaje Hack, su origen y diferencias respecto a PHP.

  • Core. Contribuye al desarrollo del core de PHP o el motor de Zend; contribuye en algunas extensiones y herramientas públicas; es un ponente frecuente en conferencias internacionales y es usual ver su nombre en PECL y en los créditos en cambios de versión de PHP.

Respecto de los salarios, estos pueden variar dependiendo la zona, los siguientes son sugeridos con base a los costos de vida de las principales ciudades de México en Diciembre de 2016:

  • Novato - hasta 10 mil pesos.

  • Aprendiz - de 10 a 18 mil pesos.

  • Junior - de 18 a 30 mil pesos.

  • Senior - de 30 a 50 mil pesos.

  • Master - de 50 mil en adelante.

Ahora bien, no todo recae en el programador. El empleador debe ser consciente de este tabulador y aplicarlo o mejorarlo con base a los resultados de sus programadores, así como participar en la implementación de medidas que contribuyan a la mejora continua de las habilidades de sus programadores. De hacerse así es muy probable que se logren mejorar la calidad del software desarrollado con PHP y que se incrementen los beneficios mutuos.

 

Bio

Basilio ha contribuido por más de 15 años con diversas organizaciones como desarrollador, líder técnico, administrador de sistemas, líder de operaciones web, Jefe de Departamento, entre otras responsabilidades. Desde hace 4 años colabora con empresas de venta al detalle en Estados Unidos como GAP, Kohls, LVMH, entre otras automatizando procesos para reducir el tiempo de liberación al mercado de soluciones de comercio electrónico bajo un esquema DevOps utilizando diversas herramientas de integración y entrega continuas.