если имеются в виду базовые конструкции, то это алгоритмические конструкции - их очень мало(циклы, ветвления), а если вы имеете в виду, знание базы языка (основ), то это все возможные структуры данных и механизмы ооп, далее уже идут библиотеки, фреймворки, патерны и прочее..