I really need to make a "How to start learning programming" post and sticky it.
I'll be sure to make that in January when I have more time on my hands.
To answer your question:
Yes, of course, you can learn programming without a proper course. The Internet is the best resource available.
Usually, it is recommended that beginners start with an easier language so that they can become comfortable with programming before they dive in to the "real thing".
I'd say start off with Python. It is a good easy-to-learn scripting language that allows both procedural and object-oriented programming. It is much more flexible and the syntax is easy to get used to.
Since this is going to be the first language you learn, you should use A Byte of Python
. It really gives a proper introduction into programming in Python and it is paced well enough for the average beginner. The most important thing from then on will be actually starting to practice making your own little programs. The more you do, the more problems you'll run into and the more you will learn by trying to solve those problems. You can supplement your learning with the Python video tutorials available on Youtube by "thenewboston". Watch the tutorials on the specific sections you learn about as you progress through the book. Remember: practice, practice, practice. Then, in a couple of months, when you begin to see yourself as an "expert beginner" and have already finished the material listed above, you can start through Dive into Python
. (It starts by making you learn by doing. I personally did not like this book but many people suggest it and you may like it too.)
I am pretty sure this will keep you busy for many months.
(All the information I have listed above is completely from personal experience. I too started with Python). Once you feel you are a pro, you can look into further resources but I am pretty sure this is enough for now.
However, according to my experience, I only actually gained a profound understanding of programming when I learned Java. (because of its object-oriented paradigm).
If you have any further questions, just ask in the Coding section and we'll be sure to help you.