Скажите, какие(ая) есть книги(а) по основам программирования (алгоритмы, структура данных, ООП и т.д.)?
Только Кнут, только хардкор.
ищи Паттерны проектирования, в том числе видео лекции, без привязки к языку там мало что понятно, но хотя бы сможешь поддержать баттл о Синглтоне 
остальное  - лучше брать Питон и делать, или Го, он тоже просто и сразу упор на структурыдавай это вынесем сюда