Hace unos meses leí un artículo publicado en la revista de Software Gurú por Basilio Briseño donde planteaba que PHP es de los lenguajes menos pagados en Mexico y por qué eso sucedía. En su articulo también publica un tabulador del tipo de programador hecho por el grupo de programadores “PHP México”.

Aunque el tabulador está orientado a las habilidades de un programador de PHP, el concepto del tipo de programador que en cada sección se lista da a entender lo que se espera que un Novato, Junior, Senior o Master developer debe ser para poder caer en la clasificación.

El tabulador podría generalizarse de la siguiente manera:

  • Novato. Generalmente escribe código sin consistencia en indentación o convenciones y acostumbra a copiar y pegar cualquier cosa que se encuentra en internet que parece 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 código 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 su lenguaje de dominio 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.
  • Master. Es capaz de desarrollar sus propias extensiones, gemas o librerías, u optimizándolas para su mejor uso, contribuye a proyectos Open Source y normalmente se dedica a mejorar el desempeño de aplicaciones de alto rendimiento. Conoce bien el lenguaje de dominio, su origen y diferencias respecto a otros.
  • Core. Contribuye al desarrollo del core del lenguaje de dominio; contribuye en algunas extensiones, gemas o librerías y herramientas públicas; es un ponente frecuente en conferencias internacionales y es usual ver su nombre en los créditos en cambios de versión de su lenguaje de dominio.

Entonces… ¿Que tipo de programador eres?

Muchos se nombran Senior tras años de trabajo, o expertos en algún framework o lenguaje cuando solo hacen tutoriales; sin embargo tu trabajo y contribución y el cómo afecta en otros lados (no solo en donde trabajes) habla mejor del tipo de programador que eres.

phpseniorsoftware

Rockstar/Software Engineer. Web Artisan.