Часть Linux / Unix - это то, что описал ennuikiller, зная систему, базовое использование, API, Makefiles и т. Д.
Вторая часть, C ++, имеет тенденцию делиться на две категории. Люди либо ищут базовое понимание указателей, использования памяти, STL, шаблонов и тому подобного, либо ищут опыт разработки с конкретными библиотеками, такими как Boost или Qt.
Я бы сказал, что большинство из того, что я видел / брал интервью - это первая часть, базовые знания языка, указатели, шаблоны. Время от времени я вижу работу, требующую опыта работы с Qt или Boost, но обычно это должности среднего и старшего уровня.
Чтобы обобщить, если вы установили дистрибутив Linux и попытались разработать с использованием * nix инструментов, вы должны знать достаточно для первого требования. Для C ++, если вы можете создать базовую реализацию класса шаблона связанного списка (функции добавления / удаления / печати / поиска / сортировки), вы знаете достаточно.
Это, конечно, основано только на этих двух требованиях и ничего не знать о должности. Вам может понадобиться знать сетевые функции Linux, файловый ввод / вывод, сортировку, обход дерева и множество других API и алгоритмов, в зависимости от того, что требует работа.