А моё мнение таково: есть некоторый набор универсальных принципов (алгоритмическая сложность, базовые алгоритмы и структуры данных, SOLID), есть некоторый набор специфичных для языка и направления штук, эти наборы надо знать. Понимать что-то в смежных областях вполне можно, но вообще говоря не обязательно.
И да, фуллстеком при этом быть совершенно не обязательно.
Да и кроме веба есть ещё куча областей, хоть они и не так популярны.