"Learn Python 3 the Hard Way" by Zed Shaw is a superb introduction to programming. Python is a very good language to start with, and Shaw works hard to help new coders develop healthy habits that will aid them later.
This is a little later in the process (after learning basics), but "Game Programming Patterns" by Robert Nystrom elegantly covers essential design patterns in a fun, approachable, and beginner-friendly way. The book is free on his site, but it's worth buying! gameprogrammingpatterns.com/
By and large, one is best off learning coding from a platform-agnostic standpoint. To start out learning it from a "Microsoft" perspective, an "Apple" perspective, or a "Linux" perspective just means you're comfortable with one and not on the others; that becomes a severe hindrance to further learning. Thus, I'd strongly recommend learning how to code with cross-platform languages like Python, and then moving to semi-portable languages like C++.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.