Да для начала подойдёт любой учебник по выбранному языку для начинающих. Если это сложно, то имеет смысл начать с учебника для школьников по информатике.
Тут все от предпочитаемого ЯПа зависит. К примеру есть такие книги как - Философия Java, Язык программирования C и им подобные, но они уже про конкретные ЯПы. Есть такие крутые чуваки как Кнут, Фаулер, но основы программирования проще будет учить по каким нить курсам на ютубе, могу посоветовать канал SimpleCode
Основы есть в школьном учебнике. Есть онлайн симуляторы для разных возрастов. Выбор конкретной книги - строго индивидуально, абсолютных лидеров здесь нет.
Сейчас можно на разных форумах учиться, информации валом, да ещё и спросить у специалистов можно, то что не понял. Вот как пример хотя бы здесь, очень много полезных статей по программированию и не только.