It's 100% possible to self teach. Infact, the best programmers are usually the ones who are self taught. Because of the nature of programming you basically teach yourself anyway through many many hours of practice. I'm 100% self taught, but I still study a computing course at college.
Scratch is not a good start at REAL programming. Scratch is more suitable for kids.
However, depending on the type of programming you intend to delve into, you will benefit more from learning a particular language.
For example, if you want to start developing websites, you'd learn languages such as HTML, CSS, JS, and PHP.
If you want to go into mobile development then learn Java, Swift, C# or Objective-C.
If you want to go into developing windows application, you should learn C# or Java.
An all purpose language you could learn is C#.
I do not recommend for you to learn C++ as a beginner language though, you're better of starting off small with C# or something.
Also, it helps to join a proper coding forum/community where you can learn from others.