How do you measure or represent your ability to do your job?
In thinking through this question and reading up on some sources, I came across this page, which I think is a good frame from which to work. The NIH Competencies Proficiency Scale. Essentially, your proficiency is broken down into 5 levels:
Their words:
-
Fundamental Awareness (basic knowledge)
- You have a common knowledge or an understanding of basic techniques and concepts.
-
Novice (limited experience)
- You have the level of experience gained in the classroom or as a trainee.
- You are expected to need help performing this skill.
- You understand and can discuss terminology, concepts, principles and issues related to this competency.
- You utilize the full range of reference and resource materials in this competency.
-
Intermediate (practical application)
- You are able to successfully complete tasks in this competency as requested.
- Help from an expert may be required from time to time, but you can usually perform the skill independently.
- You have applied this competency to situations occassionally while needing minimal guidance to perform successfully.
-
Advanced (applied theory)
- You can perform the actions associated with this skill without assistance.
- You are certainly recognized within your immediate organization as a "person to ask" when difficult questions arise regarding this skill.
-
Expert (recognized authority)
- You are known as an expert in this area.
- You can provide guidance, troubleshoot and answer questions related to this area of expertise and the field where the skill is used.
My words:
-
Fundamental awareness
- You have watched a Udemy course or two on the topic and you can start to incorporate this into your own work.
- You will need to Google and Stack Exchange. A lot.
-
Novice
- You know enough to start.
- You can cobble things together, figure them out as you go but chances are good you will be spending a lot of time on things, that a more experienced developer will solve quite quickly.
- Trial and error is a big part of your repertoire.
- You are primarily concerned with getting something to work rather than to work well.
- You don't know what you don't know.
- Your ability to read and comprehend code is limited.
-
Intermediate
- You can build stuff and you know enough to have opinions on what you have built (good and bad).
- You refer more to the MDN and developer docs directly, because you are looking for the gist.
- You understand the building blocks and are looking for information that is more directional, than it is specific.
- Likely, once you have built a few things, you will start to recognise the short-comings of your implementations and become more concerned with patterns, structure, efficiency and style.
- Importantly, you can, for the most part, solve your own problems.
- You are becoming aware of what you don't know, you have pretty good ideas on what you need to get better at.
- You know bad code when you see it, but you aren't thoroughly versed in how to improve it - you know it should be improved and you have some ideas to go on.
-
Advanced
- You have been round the block more than a few times.
- You can solve small problems quite quickly and most importantly, you can solve hard problems others are struggling with.
- Your code is generally well structured, well written and hopefully shows good style.
- People tend to call on you to help solve issues they are facing.
- You know bad code when you see it and you immediately have solid suggestions and approaches to improving it.
-
Expert
- You are solving problems most people don't even know exist.
- You are creating what everyone else uses.
- You are likely proficient in more than one language and could pick another up quickly.