Тема слишком обширная. Я бы подели так:
Хорошие знания = знаешь как делать, и можешь обосновать почему так, приводя в пример прошлые проекты
Средние знания = тебе говорят как надо сделать, и ты делаешь не задавая вопросов о том как это работает
Небольшие знания = тебе говорят как надо сделать, но ты так некогда не делал и тебе надо с этим разбираться
Исходя из этого, средние знания я бы оценил так - тебе ставят задачу, и ты её можешь решить без доступа к справочным материалам. Например, говорят, надо разработать плагин, который wordpress превратит в инет магазин. Ты отрубаешь инет (выкачав нужные библиотеки) и все можешь сделать локально = поздравляю, ты среднячок.