If you intend to use the lookup table approach, I would recommend creating a foreign key constraint.
Without a foreign key constraint, there’s no validation against bogus specialism_id values in your teachers table.
This way you don’t lose out on the validation which an enum provides.