10 criteria to rate oneself in a programming language or framework

Was sitting on an interview panel recently and the interviewee was asked to rate himself for the Laravel PHP framework, on a scale of 1 to 10. Some basic questions on Laravel were asked before this but the answers were not satisfactory. His reply? 9/10.

Personally, for PHP, I would probably rate myself 5/10, and even lower for Laravel. That got me thinking – is there an objective set of criteria with which one could use to rate oneself in a programming language or framework?

Thought for a day and came out with 10 criteria. For each criterion, it’s zero points, half a point or the maximum of one point. To get 10/10, one would have to score the maximum of one point for each of the 10 criteria.

For context, I will be using PHP for the language, Laravel for the framework, and Maths for the subject. Enjoy the read, ad huc!

Criterion 1: Have designed and written an application. Full one point only if you have done it from scratch and all by yourself. Contextual examples:

  • PHP: Did up a responsive website.
  • Laravel: Wrote a REST API.
  • Maths: Designed exam papers, factoring in questions testing Knowledge, Comprehension and Application.

Criterion 2: Know standards and best practices. Full one point only if you can also explain the design patterns used. Contextual examples:

Criterion 3: Testing. Full one point only if you know the various types of tests, fakes/mocks/stubs, the tools used, how to automate the tests, and have done them all. Contextual examples:

  • PHP: PHPUnit
  • Laravel: Laravel Dusk
  • Maths: Came up with a marking scheme for a Math exam, factoring in components for each question such as method marks, unit marks and accuracy marks.

Criterion 4: Deployment. Full one point only if you know about required infrastructure, server configuration, CI, and have deployed applications by yourself. Contextual examples:

Criterion 5: Certification. Full one point only if you have the latest official certification. Contextual examples:

Criterion 6: Contributed to open-source project related to language/framework. Full one point only if you are an active code contributor (documentation not counted). You can get the full one point also if you designed and created an open-source project that is used by others. Why open-source? Open-source projects usually have strict contribution guidelines and processes in order to manage potentially thousands of contributors, thereby enforcing discipline and teamwork. Contextual examples:

Criterion 7: Contributed to the language/framework itself. Full one point only if you are an active contributor working on the core code (documentation not counted). Contextual examples:

Criterion 8: Given talks. Full one point only if you have given at least 3 talks at international conferences and can provide video recordings of your talks. This is where Engineers.SG comes in useful 🙂 Contextual examples:

Criterion 9: Taught classes/courses/workshops. The best way to learn is to teach. Full one point only if you have taught at least 3 batches of students. Contextual examples:

Criterion 10: Active contributor to the community. Half a point if you are a meetup/conference organiser. Full one point only if you are a mentor figure in the global community. Contextual examples: