PHP y los salarios en México

php-code

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

Y es aqui donde nos preguntamos ¿por qué los 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 lógica del programador, lo complejo de la tarea a realizar o el lenguaje de programación? Si se contrata a un carpintero, no se le contrata debido a que corta troncos con sierras marca Honda* o por que usa martillos marca Craftman*, se le contrata porque es un carpintero, sabe hacer su trabajo y da resultados, lo mismo aplica para los programadores, entonces ¿por qué tantas empresas insisten en pagar tarifas basadas en el lenguaje y no en el programador?

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

El motivo está principalmente basado en un círculo vicioso generado por los programadores novatos, ¿cómo es esto?, cuando un programador novato trabaja generalmente no presta atención en la calidad, 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 optimizado, entradas de datos inseguras, y un sin fin de “features” mas. Lo anterior repercutirá en el desempeño del programa, y el empleador curiosamente comienza, no por dudar de la eficacia del programador, sino en el lenguaje.

Así entonces mientras mas novato el programador peor calidad de código, ante tal calidad más desconfianza se genera en el lenguaje, a mayor desconfianza en el lenguaje menores salarios, a menores salarios los programadores de calidad se interesan menos en el lenguaje, a menor cantidad de programadores de calidad 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.

El programador novato generalmente llega a creer que lo que hace es todo lo que hay en PHP, incluso coloca en su currículo el adjetivo “experto en PHP” o “nivel avanzado en PHP”, y como ya se considera a si mismo “experto” no se esfuerza en aprender más, ni mejorar la calidad de su trabajo. Y este, es un verdadero problema, sin embargo más que solo exponerlo y preocuparnos ¿cómo podemos invertir el círculo vicioso en uno virtuoso?

No es tan complicado, mientras mayor calidad en el código y valor agregado ofrezca el programador, mejores resultados verá el empleador, a mejores resultados el empleador deberá ofrecer mejor salario, a mayor salario más programadores de calidad interesados en el lenguaje, a mayor cantidad de programadores de calidad mayor calidad en el código y valor agregado, y de ese modo el ciclo va enriqueciendo el valor salarial.

Un buen punto de arranque para comenzar a invertir el ciclo es reconocer en donde se encuentra el programador y ponerse metas para aprender y mejorar. A mediados de febrero 2011, 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.

  • Newbie – 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 y según dicen los foros es la solución.
  • Apprentice – Programador que ha aceptado que necesita mejorar y decide aprender mejores prácticas y aplicarlas. Consulta en foros no para buscar código para copiar y pegar, sino para analizarlo y pregunta después de haber investigado por cuenta propia.
  • Junior – Generalmente separa su código, sabe qué son los patrones de diseño y los usa, entiende qué es REST, CRUD, ORM, SQL Injection, XSS, I/O Sanitization, etc. y usa estas técnicas, es excelente aprendiendo y usando APIs de terceros.
  • Senior – Programador capaz de desarrollar sus propias herramientas, consciente de como funciona PHP internamente, sumamente interesado en el performance de las aplicaciones mas 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 y faciliten el desempeño de su trabajo y aplicaciones. Contribuye con código en diferentes proyectos y comunidades. Entiende que “PHP es el frontend de su backend”.
  • Master – Capaz de desarrollar sus propias extensiones para PHP en C, contribuye a PECL y lo contratan para mejorar el performance de aplicaciones de alto rendimiento.
  • Core – Contribuye al desarrollo del core de PHP o el motor de Zend, contribuye en algunas extensiones usadas por muchas personas, generalmente se le ve 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 en base a los costos de vida de las principales ciudades de México en febrero de 2011**.

  • Newbie – hasta 8 mil pesos
  • Apprentice – de 8 a 15 mil pesos
  • Junior – de 15 a 25 mil pesos
  • Senior – de 25 a 40 mil pesos
  • Master – de 40 al límite que establezca con el empleador.

Considero que lo anterior ayudará a dar una pauta sobre cómo mejorar el salario de los programadores que usan PHP. Ahora bien, no todo recae en el programador, el empleador deberá estar consciente de este tabulador y mejorarlo en base a los resultados de los programadores. De hacerse así es muy probable que se logren mejorar no solo los salarios, sino la calidad del software y se incrementen los beneficios mutuos.

* Las marcas mencionadas son propiedad de sus respectivas compañías, se mencionan únicamente con motivos ilustrativos.
** Las cantidades expresadas son mensuales.

Basilio Briceño

DevOps evangelist, SoftwareLibre activist, sometimes speaker & eclectic metalhead.

21 comments

  1. zodman   •  

    Creo que el tambien interviene el tiempo que te has dedicado a un lenguaje. No me acuerdo donde lei que si te pones a programar en un solo lenguaje por mas de 3 años. Empiezas con newbie hasta llegar Senior. Aprendes de los problemas que se te presentan.

    Ademas del tabulador, te pagan por el nivel de conocimiento que tienes. Si sales de la universidad y te preguntan por que has echo. Y le dices aaah pues hize una aplicacion POS en la escuela que solamente le funciona la venta. te van a pagar como un newbie.

    Pero si durante la escuela hiciste un CMS opensource, que muchos cuates usan como blog (esto me viene a la mente gekkoware) Claro ya no te pagaran como newbie. Si no como senior por que ya tienes un nivel de conocimiento. POr cierto pa cuando el sl.mx ?

  2. chillicoder   •  

    Otra cosa que creo que ha demeritado el mercado de php son los diseñadores que usan los wizards de ciertos productos comerciales de adobe. simplemente usan el código generado y como no les “costó” lo regalan al cliente y cuando lo tienen que extender y contratar a un programador ps como que ya les pesa pagar por algo que no se cobró originalmente.

    La escala de experiencia me gustó mucho y me parece lo suficientemente genérica para aplicarla a otros lenguajes.

  3. Sebastian   •  

    Hace un año comenzé a trabajar para unos americanos, es mi primer trabajo formal, pasé de ser “Experto en PHP” a newbie, pensaba que lo sabía todo pero comenzamos a utilizar Symfony framework, a resolver problemas mucho mas complejos que un simple CRUD y me di cuenta de que no sabía nada!

    Creo que a muchos nos pasa lo mismo y mucho tiene que ver con la educación en México (tanto para los desarrolladores como de los empleadores) y la falta de grupos como PHP Méxcio.

    Me parece que podemos ayudar a la comunidad a traves de estos grupos resolviendo preguntas, escribiendo cursos, etc. No solo estaremos ayudando a los que “no saben” (o sabemos) si no que nos estaremos ayudando todos como dices tú incrementando la calidad del código.

    Así que los invito a que formemos parte activa de estos grupos como PHP Mexico

  4. kuroir   •  

    Algo de lo que me he dado cuenta con la gente que emplea desarrolladores en PHP es que lo que buscan es mano de obra barata; prefieren a 2 newbies que a un experto; pensando que tener más es mejor.

    Lo que no entienden muchos es que el nivel de experiencia ayuda mucho y puede hacer a una persona mucho más productiva que varios programadores newbie juntos.

    Yo antes de abandonar PHP como mi lenguaje principal tenía el Nivel de Senior; sin embargo era pagado como Newbie. La razón: abundan.

    Lo que yo siempre voy a sugerir es que siempre aprendan; tener un lenguaje más bajo tu cinturón siempre es bueno; eso no lo olviden. Nunca caigan en la zona de comfort donde “ya no tengo que aprender nada”.

  5. Pingback: PHP y los salarios en México « Ramel Blog

  6. Miguel Sosa   •  

    Tambien se menciona CRUD como algo que lo abarca todo; hay de CRUD a CRUD, asi como de query a query, etc.

    Si entro a maestros de web, copio el codigo de un CRUD, le acomodo 2-3 cosas; ya soy Junior?

    Aunque como referencia inicial esta bien, pero hay que tomar en cuenta que existen muchos mas factores involucrados entre un novato y un experto.

    Para mi punto de vista un Senior es aquella persona que le dices; requiero una aplicacion “X” y la desarrolla sin importar su complegidad, claro que con su debido tiempo y aprendizaje de nuevas herramientas y/o tecnicas; pero como es un programador con experiencia (posiblemente conosca algo de diversos lenguajes) la adquicicion del nuevo conocimiento es mucho mas rapida, llevandolo a un desarrollo en buen tiempo y tomando en cuenta multiples puntos como seguridad, organizacion, escalabilidad, etc.

    y desde mi punto de vista otro factor que afecta a los tabuladores es que existen cientos de personas que dicen saber php porque dieron click al fantastico, instalaron joomla, instalaron y configuraron 2-3 opciones y tienen un sitio funcional. Eso no es saber php, eso es ser integrador.

    bueno, es un tema de años y años.

    lo unico que hay que hacer es cobrar lo necesario, mostrar la calidad necesaria y obvio: superarse mucho

    tw: @mashtercom

  7. Jesus Reyna   •  

    Es muy cierto que los salarios para la gente que desarrolla en PHP son muy bajos, y esto se debe a que como mencionan, es un lenguaje muy sencillo y muy flexible que cualquier persona con los minimos conocimientos en programación puede hacer cosas descentes, es muy común que hasta diseñadores realicen pequeños formularios en PHP.

    Hay muchos lenguajes que requieren de un buen conocimiento de metodologías o patrones de diseño para utilizarlos y creo que esto hace que sea bien cotizado porque de cierta manera debes de tener un cierto nivel para usarlos.

    En cambio, PHP es muy flexible pero eso no lo hace menos poderoso, un programador con los conocimientos mencionados puede hacer cosas brillantisimas con PHP e incluso con un mejor performance y con menos recursos.

    Si te consideras un buen programador y no has usado PHP, pruebalo, conocelo y te aseguro que te enamoraras :)

    Saludos.

  8. Amin Espinoza   •  

    Hola excelente artículo! Soy developer 100% orientado a Microsoft, mi mas grande logro en PHP ha sido “envíar un correo”, pero al leer tu artículo ví la razón en cada una de tus palabras, es bien cierto que las empresas optan mucho mas por dos novatos que un master, quizá “yo” empleado conozco mi potencial, se de lo que soy capaz, pero “yo” empleador lo ignoro, y mientras no me demuestres tu capacidad no me sirves, yo veo en México un gran problema, hay jefes de desarrolladores que no saben de desarrollo, a ellos se les puede hacer sencilla una tarea sin tomar en cuenta absolutamente nada, entonces solo pedirán y pedirán, sin considerar la dificultad de la tarea, ni la experiencia de la persona ¿no lo ven así?

  9. luis   •  

    me gustaria saber si conocen o eres un programador necesito hacer unos proyectos gracias si me puedes enviar informes de ti gracias

  10. Azteka   •  

    esa cantidad a pagar es por día, Semana, Quincena, Mes. Año o Vitalicio.
    tambien es importante especificar esos pequeños detalles.

    • Basilio Briceño   •  

      Tienes toda la razón, las cantidades son por mes, lo corregiré, gracias por notarlo y comentarlo.

      Saludos,

      Basilio

  11. Emanuel Villicaña   •  

    Buenos dias excelente articulo por lo cual los felicito ahora tengo una pregunta a ustedes que programan en php que tiempo aproximado llevaria desarrollar un sistem administrativo completo en este lenguaje con su menu de catalogos, cxc, cxp, inventarios, pedidos facturacion, reportes con salida a excel o pdf etc digo se que debemos de saber mas detalle pero voy a comenzar un desarrollo y me encantaria saber su opinioon hasta ahorita me e enfocado a aprender. Un poco de net pero tengo que tomar la decision de contratar gente con asp .net y bueno ahora me pregunto que tan bueno seria hacerlo contratando gente de net saludos y gracias por el apoyo

    • Basilio Briceño   •  

      El desarrollo con PHP de catalogos via web es bastante rapido, sin embargo el tiempo varía dependiendo las herramientas que utilices, que varían desde el IDE o editor hasta el framework que utilices, si estás acostumbrado a ambientes Orientados a Objetos, te recomiendo que le eches una mirada al sitio de Zend y a las soluciones que ellos brindan para acelerar desarrollos. También puedes buscar a sus partners en Mexico (como Netmx) y checar capacitación o incluso cotizar el desarrollo, en fin como en todo hay muchas opciones, dependerá mucho de lo que prefieras.

  12. ruli   •  

    y en que categoria quedaria yo..se copiar y pegar codigos en paginas y modificarlos y crear una aplicacion propia usando php mysql digamos un pequeño catalogo o usuarios con perfiles
    y cosas asi creo seria entre newie y aprendiz

  13. jhonnynofear   •  

    Muchas gracias por esta info Briceño, este ranking me da una idea muy clara del perfil que estoy buscando ya que estoy expandiendo mis áreas de desarrollo. Dirijo una empresa de Diseño/foto/Impresión (offset y digital) y ahora quiero reabrir el área de webdev por lo que estoy buscando un “Apprentice” (según el sistema BBriceño de ranking!!) con un sueldo intermedio en esta categoría que desee seguir creciendo y aprendiendo, mientras ocupa los conocimientos adquiridos para desarrollar propuestas con los mock ups que desarrollamos en conjunto. Corrijeme si me equivoco pero estas son las características básicas que busco para este perfil:

    Desarrollador / programador web, recien egresado o en últimos semestres (promedio superior a 8.0 demostrable) con conocimiento extenso en PHP y mysql. Uso de Hojas de Estilo CSS, Divs, Ajax, Jquerys, Joomla, WordPress, Drupal, manejo intermedio de software adobe CS5. Afinidad con mantenimiento de hw y sw en general. De preferencia vivir en DF o distritos cercanos. Enviar c.v. con asunto: Programador PHP y pretensiones económicas a contact@ions2dio.com

    Esto con la finalidad de reabrir el área que estuvo congelada como primer paso. De otra manera agradeceré cualquier propuesta que crean conveniente. Saludos!

  14. Avenida Gez   •  

    Me hiciste recordar algunas experiencias pasadas. Ya pasó el tiempo de este artículo pero sigue siendo algo vigente. Hay ciertos aspectos clave que lleva consigo un programador desde la tarea mas simple, sin embargo no es posible exponerlos ni darles relevancia sin antes definir, al menos de manera generalizada, la tarea a realizar.
    Primer Punto. Hay clientes que ven la computadora como solución, hay clientes que ven al programador como solución y a la computadora solo como un instrumento para logarlo.
    En ambos casos los dos empiezan mal, pero estimo que es mas del 90% de los casos.
    Segundo Punto. Lamentablemente el programador entre mas listo, mas piensa como programador (le fascina el código, yo fuí uno de ellos) y ciertamente puede ser un genio, tan abstraido de la realidad que alguien dificilmente lo comprende y mucho menos en términos de programación (sea cual fuere el o los lenguages extraños en que habla)
    Tercer Punto. El cliente ignora la naturaleza, cualidades y defectos de los sistemas computacionales en términos de software, de tal manera que el único responsable de todas las fallas es el programador y cuando no lo hay, es el usuario.
    Cuarto Punto. El programador no le hace ver al cliente de la naturaleza real de los sistemas computacionales por múltiples razones, entre ellas, porque considera que no lo va a a comprender, porque si lo comprende asustará al cliente y no querrá aventurarse ante lo inestable e inmaduro que es el software, y porqué no decirlo, muchos programadores son exacervadamente recelosos de lo que saben cuando seguramente ni a otro programador le interesa del todo lo que sabe a no ser que busque resolver un problema en particular.
    Dicho lo anterior, veamos la labor caótica que emprende un programador pretendiendo resolver una tarea.
    Primer Punto. Hacerle ver al cliente que las computadoras, aun hoy, están en pañales en términos de software, demasiados bugs de origen que te llevan continuamente a buscar caminos alternos para seguir adelante con tu tarea.
    Segundo Punto. Hacerle ver al cliente, de la infinidad de discrepancias que existen entre programas que supuestamente harían lo mismo y se comportarían igual, aún existiendo normas, estándares y acuerdos, que cuando esto no lo implemento este fabricante, el otro sí pero diferente, y no solo entre marcas, de una misma marca te encontraras entre versionamientos totalmente difirentes, lo que en uno funcionaba ahora ya no y viceversa, y hacerle ver que esta danza es permanente, y frecuente pues los fabricantes no dejan de supuestamente renovar sus productos con nuevas versiones sin siquiera haber resuelto los problemas de su versión anterior.
    Tercer Punto. Si el cliente comprende, que el programador le vá a enseñar a la computadora, que no es mas allá que un niño inteligente (si no es que mejor llamarle síndrome) para lo que tendrá que aprender o haber aprendido alguno o varios lenguages para enseñarle la tarea a realizar y que de esa tarea, de la cual la computadora lo ignora todo, que lo único que sabe hacer antes de ser programada, es memorizar información y hacer operaciones matemáticas y que el resto depende de la enseñanza procurada por el programador, resulta que ese lenguaje que obviamente debe también aprender la computadora, puede tener defectos, habra cosas de ese lenguage que la computadora misma no puede interpretar, así que la tarea empieza por donde debió en un momento dado haber terminado, pues de la tarea misma, el programador no sabe gran cosa y muchas veces nada y lo peor del caso es que muchas veces también el cliente tampoco lo sabe.
    Así que tenemos a un cliente que contrata a alguien para que se de a la tarea de enseñarle a un bebé genio defectuoso e inestable (la computadora) a hacer la tarea de un contador que el programador no sabe hacer pero le va a enseñar al bebe contabilidad.
    Y vaya que es bueno el ejemplo pues si ponemos a 10 contadores juntos a realizar la misma tarea, encontraremos que todos la harán de diferente manera (la mayoria de las veces de forma equivocada) empezando por el catálogo de cuentas.
    Es por todo ésto que un programador se vuelve el capacitador de los empleados en su tarea, para lugo convertirlos en usuarios del programa.
    El ganador? El cliente.
    De lo que se habla en éste artículo, es de la enseñanza de la computadora para realizar tareas y no de las tareas mismas, de tal manera que debemos comprender que esa tarea inicial, ni se paga, ni tiene precio, sin importar la calidad o la genialidad juntas del programador, de su bebé y de todos aquellos que participan para que lo logre, tales como el sistema operativo, las interfaces, los lenguages y todo aquello que de no exisir, los programadores no tendrían tarea mas allá que la de hacer programas en assembler.
    Si el cliente sabe lo que quiere, tambien sabe lo que cuesta y por lo mismo también sabe ponderar que lo que obtiene vale mucho mas que el precio que llegue a pagar por ello.
    La única alternativa, cuando existe un cliente que sabe lo que quiere y que lo necesita y que está a su alcance, pero no quiere pagar por ello, es aunar el desarrollo del sistema a una iguala por tiempo determinado y es algo con muchas probabilidades de negociarse. No escrito, pero muy claro que el amarre es en base a resultados para minimizar las pérdidas de tiempo y dinero en ambas partes, en caso de que las hubiere.
    Yo, por lo pronto, dejando de divagar, me pongo a sus órdenes para cualquier proyecto de grupo o particular, en cuyo caso trabajaría en base a especificaciones. Por cierto, los dos programas, el de comentarios y el de opiniones, me puse ha hacerlos despues de 10 años de haber dejado de programar, pero sin haberlos hechos con otros fines mas que distracción, son de facil instalación y multi-idioma. No usé tablas relacionales como acostumbraba a hacerlo, en fin.

  15. Carlos   •  

    Este articulo aunque fue escrito algo atrás, solo me hace dar cuenta del por que este sector se encuentra tan atrasado en nuestro país, considero esta profecion en extremo compleja, que requiere muchas horas de practica y dedicación.

    Los salarios solo reflejan lo que para México significa esto… una broma…

    Tengo la suerte de estar estudiando y viviendo en Estados unidos, así como de contar con la ciudadanía de este país, donde el salario medio de un “entry-level programmer ” es mas o menos parecido al de aquí se califica como “Senior ” o incluso “Master” (al rededor de 50k USD al año).

    :s

    • pepetoro   •  

      Compara los costos de vida, con 50k pesos en México puedes vivir bien con una familia, pero con 5k dólares en EU apenas alcanza para sobrevivir el mes.

      Igual si es mucha diferencia y en México esta muy bajo el salario, pero no creo que puedas comparar con EU por que hay muchos factores.

  16. Minna   •  

    I read a lot of interesting content here. Probably you spend a lot of time writing, i know
    how to save you a lot of time, there is an online tool that creates unique, google friendly articles in seconds,
    just type in google – laranitas free content source

  17. Pingback: Los grandes impulsores de PHP en México

  18. Leonardo   •  

    Yo soy programador PHP y ve la clasificacion, podria decir con base a mi experiencia que me encuentro en: Senior, pero te encuentras que en Mexico, la mayoria de las empresas prefieren tecnologias Microsoft, las cuales son mejor pagadas que PHP, pero que en el sureste del pais estan estancados, los salarios en PHP, segun computrabajo.com son ridiculos, insultantes. No puede ser que un obrero o administrativo gane mas, cuyo trabajo no exige logica ni conocimiento.

Leave a Reply to jhonnynofear Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>