https://www.codecademy.com/
https://www.khanacademy.org/
https://www.coursera.org/
https://www.reddit.com/r/learnprogramming/
Books are good too:
https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628
http://www.htdp.org/
https://mitpress.mit.edu/sicp/full-text/book/book.html
If you have questions, there are answers:
stackoverflow.com
Game stuff:
http://gameprogrammingpatterns.com/
Extra Credits:
https://becausegamesmatter.com/
https://www.youtube.com/user/quill18creates
The game you're about to start, right now, because there's no better time and doing is the best way to learn (even if it's just what not to do).
General advice:
Don't worry about your starting language. Go with what's popular, or what your friends are using, or whatever has the best name.
Don't stop at one language. Once you learn one, learning another is easy*.
Focus on the fundamentals. Languages and frameworks change every month, but the basics of computer science haven't changed since at least the 1600s (seriously), and a lot of the modern refinements date back to the 1950s.
Make sure your code is readable. Even if it's a solo project, you six months from now might as well be a different person.
Coding is
hard. Keep at it.
Have a project. It will help motivate you when learning becomes a slog (which it probably will), as well as give you direction on what to learn next.
Use comments to explain why something is the way it is.
*There are a few different "paradigms" languages use, e.g., C is an imperative language while Scheme is a functional language. The first time you encounter a new paradigm it might be difficult to wrap your head around, but all languages have the same capabilities, just different strengths and weaknesses.
Things that are helpful to know:
Basic algebra
Logarithms
Trigonometry, especially if you're doing graphics stuff.
Propositional logic & Boolean algebra
Binary & hexadecimal numbers
A good text editor (vim-my favorite, emacs, nano, others I don't know about but are probably pretty good anyway). This is a significant time and brain investment and Notepad++ works if you don't want to bother.
Touch typing. Coding is done with the head, not the fingers, but the fewer barriers between your thoughts and your code, the better.
How to communicate well: clearly, concisely, and persuasively. Most coding will be done with a team and
cannot succeed without good communication.
Good ergonomics. Repetitive stress injuries hurt like hell and don't need to happen.
You can ask a hundred different coders about this stuff and get a hundred different answers and they'll all be good answers. GLHF GG no re