Не ответ, но комментарий в поддержку: по-моему миру очень нехватает книги типа «теоретическая информатика (computer science) и профессиональное программирование (консервативные и agile методологии, организация процесса совместной разработки, управление версиями, юнит-тестирование, и т.п.) для чайников самоучек». Я, вот, тоже 20 лет за компом, но всё сам. В результате так или иначе знаю целый ряд языков, паттернов, «секу тему» на практике (но только в одиночку), но не могу решить ни одну элементарную задачку на алгоритмы (в лучшем случае своё что-то выдумаю) и не представляю как можно работать над программой если она не умещается вся у тебя в голове (хотя с архитектурой и паттернами у меня всё в порядке).