Ну, если начинать с теории, то классика жанра - "Искусство программирования" Д. Кнута. Жесткий матан как он есть. Классика теории баз данных - "Введение в системы баз данных" К. Дейта. Матана меньше, но мозг тоже прочищает хорошо. Сначала может показаться, что это что-то совершенно отвлеченное, но это не так: без БД в том или ином виде не обходится ни один более-менее сложный проект. Object Oriented Software Construction by Bertrand Meyer - Про ООП. Не тот, который Организация Освобождения Палестины, а тот, который Объетно-Ориентированное Программирование. Patterns of Enterprise Application Architecture by Martin Fowler - понимание того, как строятся современные информационные системы. Попутно можно изучать Java или C# - чтобы голую теорию немножко погонять на практике, тем более, что в книгах есть соотв. задания. Тут литературы море разливанное и куча всяких онлайн-курсов, но я не советчик: я C# изучаю при помощи MSDN - с детства привык к справочникам.