Rank Yourself! A Better Metric for Expertise
I’ve ranked my expertise a lot since getting into programming, conversationally, occupationally, and maybe even recreationally once I started to get into the habit. The job postings I see have level requirements: “Senior”, “Advanced”, or “Intermediate”. I hear about “Senior” vs “Junior” devs (and sometimes “Intermediate” here too). I get asked to rank myself, “Beginner”, “Intermediate”, “Advanced.” Or sometimes it’s “1-5”, or in a recent interview, “1-10”. I have opinions about this.
A Different Model
On my CV, and in interviews, I have had to rank my expertise with a language or framework. “Beginner, Intermediate, or Advanced?”, “1-5?”, “1-10?”. I have recently asked others to do this on a 1-10 scale in the RC Start community. I was hoping that I could create well-balanced groups.
No one knows how to reply. I have a hard time. “I’m a 7, well…maybe a 6.” 15 minutes later in the interview, “Can I change that to a 5?”.
I’ve been asked by friends to help rank them: “Is my Python ‘Intermediate’ or ‘Advanced’?” I’ve asked friends to help rank me. As far as I can tell, no one likes it.
I think a big reason that we don’t like it is because all of these terms are so vague, ambiguous, and amorphous. We want clear cut definitions of the terms by which we can categorize ourselves.
I found this model as “The Original Model” in this Wikipedia page for the Drefyus model, and I think it provides us with definitions:
1. Novice
- “rigid adherence to taught rules or plans”
- no exercise of “discretionary judgment”
2. Advanced beginner
- limited “situational perception”
- all aspects of work treated separately with equal importance
3. Competent
- “coping with crowdedness” (multiple activities, accumulation of information)
- some perception of actions in relation to goals
- deliberate planning
- formulates routines
4. Proficient
- holistic view of situation
- prioritizes importance of aspects
- “perceives deviations from the normal pattern”
- employs maxims for guidance, with meanings that adapt to the situation at hand
5. Expert
- transcends reliance on rules, guidelines, and maxims
- “intuitive grasp of situations based on deep, tacit understanding”
- has “vision of what is possible”
- uses “analytical approaches” in new situations or in case of problems
I would like it if I were asked to score myself on this more. Employers might wish they were using it too. I can’t imagine “1-10” means anything more to them than it does to us.
Some opinions that I currently have
I like these definitions:
- Expert: “Given a representative task, experts perform in a superior way more reliably. It’s not experts vs. novices, right? That’s not really the interesting question. It’s consistent, repeatable, reliable better performance.” [1]
- Senior Dev: Can carry a project through to the finish, delegating, managing, and otherwise leading the project. Can foresee the components needed, and how they fit together. Could step in at any scope and orient him/herself.
- Intermediate Dev: Can work more or less autonomously. When given an assignment, needs minimal direction to see it through. Will answer his/her own questions as much as possible. Might not have a perfect grasp on the entirety of the project, but in his/her scope is a great worker.
- Junior Dev: Needs instruction and oversight. Is expected to need more questions answered. Is hired because the company believes they can become Intermediate ASAP.
Note: I reserve the right to change my opinion tomorrow.
[1] Quoted from Kathy Sierra’s talk HERE