You did not stipulate the programming language. Thus, I will give some general advice (of my own opinion).
Start with either C,
or
Start with jumping directly into C++11.
You asked for online, but I did not find any that I would recommend at this time.
For C:
C Programming Absolute Beginner's Guide (3rd Edition)’ by Greg Perry and Dean Miller,
and The C Programming Language’ by Brian W. Kernighan and Dennis M. Ritchie.
For C++11:
Programming: Principles and Practice Using C++ 1st (or 2nd) Edition by Bjarne Stroustrup,
and A Tour of C++ (C++ In-Depth Series) 2nd Edition by Bjarne Stroustrup.
Learning C first can be maybe the most valuable to a new programmer.
Jumping directly into C++11 (and skipping learning C first) can (for some people) be very difficult. For someone pushing themselves hard with a lot of time and dedication, it can be a much faster way to become an intermediate and advanced programmer. This is the way that I am doing it and I am glad that I am using this process (see this [
Beginning C++11] article). I also use this [
C++ Reference] site for hard core online directions.
I found this [
C++ examples] site to be useful, but not so comfortable when I was just beginning.
I found this [
Programming questions] site to be difficult to get usable answers from as they tended to try to impress with how complicated their answers can be and they were (at that time) way beyond me.
As a beginner, if you want to learn to code and
not use shortcuts, then stay away from Visual Studio (any version) and stay away from ".NET" (any version and any code that uses it). I came from that environment, created many programs in those, and I like being out of it.
I suggest that you read all of the answers that you get on this site to this one question that you have asked as there are a lot of amazing people posting here, with many years of experience each, and then decide for yourself. I spend a lot of time on this site reading the discussions.