Что должны знать разработчики начального, среднего и старшего уровней? Теоретические знания, инструменты разработки, библиотеки и т.д. Какие вопросы обычно возникают на собеседовании? Нужно ли мне знать Java?