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:
- PHP: PSR – PHP Standards Recommendations
- Laravel: Know that the Eloquent ORM uses the Active Record design pattern.
- Maths: Pólya’s 4 principles of problem solving
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:
- PHP: Zend Certified Engineer (PHP 7.1)
- Laravel: Laravel Certification
- Maths: Postgraduate Diploma in Education
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:
- PHP: PHP Internals
- Laravel: Laravel repository
- Maths: Came up with a new way to make quadratic equations easy.
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: