Programming is indeed a great tool for solving hard problems and making life easier. If you want to learn programming, I as a programmer suggest you to first get familiar with data structures and algorithms. Programming is not all about learning new programming languages and coding. Programming is all about solving problems. If you study algorithms and data structures you can solve almost all the problems that a programmer might face. So, here I will give you a list of MOOCs (Massic Open Online Course) that can help you build your basics for programming that is Algorithms Designing and Data Structures.
This algorithms course on Coursera by Stanford University will help you get started with algorithms. Link : coursera.org/course/algo, and the second part : coursera.org/course/algo2
Introduction to Computer Science and Programming using Python from edX is also a great course for beginners. Link : edx.org/course/introduction-computer-science-mitx-6-00-1x-6#!
Introduction to Computer Science by Harvard University is also a great course for beginners where you are taught to think like a programmer which is the most important thing. You will get acquainted with languages like C, PHP, and JavaScript plus SQL, CSS, and HTML. Link: edx.org/course/introduction-computer-science-harvardx-cs50x
You can also search for other courses on websites like Coursera, Udacity, EdX, Udemy, Codecademy, Khan Academy, MIT OpenCourseWare, Codeschool, IIT Open Course (NPTEL) and many more.
Once you have complete one of these courses, you will have a better and broad understanding of how programming works and what happens inside the computer when you write your code. Trust me, this is really important to understand before you learn any programming language if you are seriously planning to learn one. Learning these basic topics can help you avoid silly mistakes and write efficient programs.
Once you know how to develop an algorithm for a problem you can code it in any language if you know the syntax and some basic features of the language. It takes no time to learn them, seriously. Now, let me give you some resources where you can learn the programming languages.
The YouTube channel called thenewboston is an amazing channel which has programming tutorials on most of the popular and common programming languages. And Bucky teaches it in such a way that you will enjoy learning.
There is another YouTube channel called Derek Banas which also has programming tutorials on almost all popular languages. He teaches a little too fast for a beginner. But just give it a try.
The most used programming languages are C++, Java, Python, etc. for desktop programming.
Let me tell you something interesting. The best way to learn programming is by actually installing the compiler and IDE and getting started right away. Learn the syntax and start developing something. You can start with HTML and CSS or Javascript if you have really no idea about programming languages. Now, if you encounter any error or difficulty there are websites like stackoverflow which has a lot of experienced programmers who can help you figure out the mistake and get you going.
Now, when you have coded for a while and have become an intermediate coder, try grabbing some projects form GitHub and try to figure out the code. Try contributing to open source community on GitHub. Try brushing up your programming skills by participating in competitive programming websites like TopCoder, HackerRank, Codeforces, etc. You will definitely love your journey of coding.
Happy Coding.