I would suggest before you learn to program, you learn how to use some of the tools used to program, like the command-line and a version control system like git. You can do this by contributing to a project that does not actually have code in it -- like a documentation or users-guide project. This way, you start to get a feel for the work-flow and it does not distract you while you are trying to concentrate on learning a language.
If you feel like blogging about your experiences learning to write code, Perl 6 would love to have feedback about how easy it is to learn for a brand new programmer... though we don't quite have a "learning to program in" guide yet, https://perl6.org/getting-started/ might be enough. The community is very friendly and would probably even be extra friendly to someone who was helping to improve the documentation for new users.
Python's an excellent place to start. Do you know what you'd like to do with programming? You don't need to know long term, but you should start with a simple project- something small you want to try and build.
True that. Python or Ruby are good starting points. There's CodeAcademy, Khan Academy's CS class, Coursera, Udacity, Edx etc..You have the whole internet wanting to teach you for free.
I found freecodecamp to be pretty good in guiding and encouraging collaboration with others
While this is thread seems strongly pointed towards Python (which is a great language to learn and what you asked for), I want to point you to JavaScript.
There's this excellent book called Eloquent JavaScript, which I really love. And it's free to read: eloquentjavascript.net
Although I've read this after beeing able to program, I think this is a great resource to learn programming. The book leaves out DOM-Manipulation (the ugly stuff) till later chapters, so you can understand the language basics.
JavaScript might not be the best language, but it's mighty popular and all you need to play with it is a browser. Plus the examples from the book are interactive, so you can run and understand them quickly.
The language is simple, so you'll get going quickly.
It might be troublesome if you don't know any HTML or CSS, but these things are not that hard to grasp after all.
Once you got the basics, try these to find cool exercises:
I like to learn as I go solving problems. Try to solve problems from hackerrank.com using Python. HackerRank follows a step by step hands on approach to teach you programming.
There is also a cool GitHub project that proposes to teach you Python in on picture. git.io/Py-pic
Python is a very good language to start with. Following posts have some nice advices for learning python.
This story has some general lessons that I learned while learning to code. I hope this helps you.
Good luck. :)
Justin
To be honest, I think you should really be asking yourself what you want to build first. If you know what you want to build, be it Front-end or Back-end.
You'll have a clearer direction on where you want to go and I'm sure people can then recommend the best languages to get you started in achieving what you want to do.
Many people start programming without a cause and think that it's easy but in reality without the right motivation to learn i.e. an end goal it's a lot harder.
That being said I would probably start with HTML and CSS as a foundation course to help you get started. For this I would recommend: www.codecademy.com