Из теории — нужно понимать основы computer-science (теория сложности, стандартные структуры данных и алгоритмы, базы, сеть) + задачка на написание кода — обойти какое-нибудь дерево или простое динамическое программирование — придумать алгоритм и аккуратно запрограммировать.
На проектировании — соответственно нужно нарисовать какой-нибудь сервис (или его часть), задав правильные вопросы по требованиям