What kind of programmer are you?
Tags: php, senior, developer, programmer
Published: 2018-01-30 21:59:19

---
title: What kind of programmer are you?
published: true
description: Classifying Rookie, Junior, Senior and Master developer skills
tags: php,senior,developer,programmer
---

*Originally published in [Dev Knights](https://dev-knights.github.io/2018/01/30/what-kind-of-programmer-are-you.html?utm_source=devto&amp;utm_medium=blogspot)*

A year ago I read an [article](https://sg.com.mx/revista/53/el-caso-php-y-los-salarios#.WKdlaxIrKRv) published in the software magazine Software Gurú by [Basilio Briseño](https://sg.com.mx/sgvirtual/speakers/basilio-brice-o) where He stated that PHP is one of the least paid languages ​​in Mexico and why. In his article he also published a salary range based for every type of programmer made by the programming group "PHP Mexico".

Although the salary range skill classification is aimed towards PHP programmer, the type of programmer classification 
can be applied outside php programming. The following list suggests what a Rookie, Junior, Senior and Master developer skills are expected to get into that classification.

The salary range could be generalized as follows:

- **Rookie** usually writes code without consistency in indentation or conventions and usually copies and pastes anything found on the internet that seems to do what it was asked to deliver and that, according to the forums, is the solution.

- **Apprentice** has accepted that he/she needs to improve and decides to learn the best practices and apply them. He/She consults forums not for searching code that he/she could simply copy/paste, instead he/she analyzes it and asks her/his issues after having investigated by his/her own.

- **Junior** knows what design patterns are and applies them, understands the basics of what MVC, REST, CRUD, ORM, SQL Injection, XSS, I / O Sanitization, etc. are, applies this knowdledge alogside other techniques; He/she is an excellent learner and uses third-party APIs.

- **Senior** is capable of developing his/her own tools and APIs, is aware of how his/her domain language works internally, is highly interested in the performance of applications beyond its ease of development, he/she is not satisfied with the functioning and design of all third-party tools and APIs as they come, and always seeks to innovate and create things that improve performance, facilitate their work and the speed of their deliverables; contributes with code in different projects and communities.

- **Master** is capable of developing his own extensions, gems or libraries, and optimizing them for his/her best use; contributes to Open Source projects and he/she is normally dedicated to improving the performance of high performance applications. Knows the domain language its origin and differences with others languages.

- **Core** contributes to the development of the core of the domain language; contributes in some extensions, gems or libraries and public tools; He/she is a frequent speaker at international conferences and it is usual to see his/her name in the credits of changes of version of his domain language.

So ... What kind of programmer are you?

> Many developers are called Senior after years of work, or experts in some framework or language when they only do tutorials; however, your work and contribution and how it affects other's people work (not only in your workplace) tells vastly what type of programmer you are.