I strongly believe programming is an undervalued skill set. Yes, it's highly valued, but not as much as it should be. And I'm not just saying this because as technology develops many other jobs are going to become increasingly obsolete (although I do think that), but because programming is one of few skill sets that are useful almost regardless of your occupation.
Programming is not harder to learn than other skill sets¶
Non-technical people often have this idea that programmers (as well as those in any other STEM field) are super smart and like complex things. This idea honestly drives me nuts. We aren't smarter than you! I'm not "smarter" than an athlete any more than modern-day humans are "smarter" than our medieval ancestors.
Also, intelligence isn't about complexity. Intelligence is about simplicity.
Programmers fear complexity more than anyone. Because programmers have seen how horrifyingly evil complexity is. In fact, it's not inaccurate to say a large part of our work is trying to simplify complex things! And I don't mean in the sense of "making tasks simple for the end user by creating software that does it"; I mean simplifying complex software.
I think a lot of the reason programming - and other STEM fields - seems intimidating from the outside is because it has more jargon than most other fields, but if you give it a fair chance I genuinely believely it's not significantly harder than another skill set.
Programming is useful for you¶
Programming is useful for tons of things besides software development. For example, a while back I needed to bulk-edit images. I was proficient with GIMP, but it doesn't provide a way to edit images in bulk from its graphical interface, so I sought another way. GIMP itself does have a scripting interface but it's so nightmarish to use that I sunk two hours into it without getting any results or any error other than "Execution Error". What did I land on?
Python. The scikit-image package, available as a free install for my operating system, gave me a Python interface to a powerful image processing library, and with a few lines of Python, it was trivial to transform dozens of images in the way I wanted. All in all it took me about five minutes to write and run the script (counting the failed iterations which I rolled back using git) after about twenty minutes to learn the library, which has helped me other times since and will no doubt continue to do so.
Similar things are possible for any kind of media. Sometimes it takes some effort to find a suitable library, but there almost always is one - graphical applications like GIMP or LMMS are based on them.
Did I mention git? Oh yeah, version control is another thing that's super useful outside of actual software development. It may not be strictly 'programming', but git is a free piece of software designed for keeping track of versions of projects and collaborating on them. It makes it super easy to keep track of what changes you've made and when, merge them with changes other people have made in the meantime, overwrite anything without losing the ability to roll back to any previous version in a jiffy, and do advanced things with the development history like edit out some changes that were made some time ago without affecting the changes after them (and without manually undoing them, I mean). But it's useful even if you don't fully understand all its features (I still don't). I've used it for visual novel scripts and my conlang and other stuff in addition to code.
While programming, version control systems, and command shells aren't all the same thing, they are very closely related and being proficient is a great help in learning the others.
Programming will change the way you think in many beneficial ways¶
By forcing you to think in strictly meaningful terms, it helps you understand human communication and how human communication can be improved, and, at least if you're not a philosophobe, I think it can really help you to avoid bad philosophical ideas as well, by helping you develop an ontology.
Programming teaches you to be a perfectionist, and I mean this in a very good way. It teaches you to optimize things and to appreciate the beauty of simplicity.
And if by some chance this article convinces you to give it a try when nothing else did, I'd feel terrible if I left it at this and then you ended up quitting because you fell into some of the pitfalls I did when I was learning programming. I've actually just started posting The Concise Python Tutorial - lesson 1 is here. I plan to post a lot more in the near future.
Of the languages I know, Python is by far the easiest one to start with. Its core pros as a beginner language (and as an advanced one):
Interactive prompt makes it easy to experiment
It's concise and has very little boilerplate
A fun adage I came up with is this: Python teaches you to like programming, C teaches you to understand programming, and Haskell teaches you to understand the universe. You should definitely start with one that's enjoyable for beginners, and I can't think of one that fits that bill like Python does.