It's just like anything else in the world. Any jerk can grab some paints and make some lines on a canvas, but the ones who take the time to understand art and practice for years are always going to be better. Always.
So should you learn to code? If you're interested in it and you really like doing it, then yes. Otherwise you're going to waste your time and everyone else's time. Coding is just another art form. It's a means of expressing systems that run on computers. If this doesn't excite you, don't do it!
Learn something you're passionate about....because you'll never get really good at something unless you're fired up about it, and what's the point of doing something if you aren't going to completely commit? There's so much in this world to learn and be passionate about, why spend your time learning something you don't care about?
Good writing can change just as many lives, just as profoundly as good coding (think of that one book or that one blog article that really made us reflect upon our own lives).
We all have great things to say: "Please Learn How to Write"
I say this as a programmer, photographer, woodworker, electronics hacker, and musician. Nothing else comes close to programming in how much you can create with so little.
In fact, programming can help you with ALL of the other hobbies I occasionally indulge in. Being able to write music doesn't make me a better photographer.
And you really are creating from nothing; you could create an app at your local library if you had some kind of programming skill but no access to a computer of your own. If I lost everything but still had access to libraries, I would still be able to do programming work.
Only in digital photography are you "creating from nothing"; every other hobby I have requires you to use up consumables, and every one of those hobbies have involved investments in equipment greater than what I spent on my latest laptop.
I couldn't create anything interesting with pencil and paper myself, and I would also suggest that it would take FAR more skill in drawing to begin to make a living using pencil and paper than it would skill in, say, web development, to make a living creating web pages.
I KNOW web developers who are barely "programmers" compared to what I know about programming who do a good job and make a good living working on web sites for people. That kind of range of skill can only exist because of the extreme leverage you get from knowing anything at all about programming.
Yes, programming IS different.
Nobody would argue that plumbing and talking have similar importance and value. But what about plumbing and programming? Or programming or reading?
I personally believe that programming is closer to reading than to plumbing for a majority of people. I'm glad to see you feel the same!
I know what you're saying, but I'd like to point out that you don't need a computer to write programs. I started writing programs with pen and paper back in middle school (before my family owned a computer), and still often do that. Nowadays, most of them do end up being digitized and executed, though.
Alonzo Church, Alan Turing, Haskell Curry, Moses Schoenfinkel, etc., were writing programs before computers were even invented ;)
"The notes [...] include in complete detail, a method for calculating a sequence of Bernoulli numbers [...] which would have run correctly had the Analytical Engine been built. Based on this work, Lovelace is now widely credited with being the first computer programmer and her method is recognised as the world's first computer programme."[1]
Seeing a thing come together as you fiddle with it is just satisfying.
But code goes further than that; since so much of our world is now digital, it multiplies these efforts in virtually every field, including the arts (there's a niche to be filled in custom automating the batch processing done in the photo production industry)
The same can be said of being a great orator. Cicero is still known today largely for his oratory skills, and similar skills have served president Obama.
So does being a great biologist and research doctor. Edward Jenner saved countless lives through is work.
Code can multiply your effort, and that is why I code, but it is not the only thing that can, and in fact many technologies exist to multiply the effort in some form or fashion.
Clearly being a great writer, orator, or doctor have high coefficients. Being a great plumber probably has a lower coefficient. Being a great doorman might be still lower on the scale. (I'm not saying there's anything wrong with being a doorman, just taking it as an example of a skill with a low change-the-world coefficient)
I think all things being equal, it's better to learn things with a high coefficient. Of course personal enjoyment is important too, so when I say "everyone should learn to code" I'm of course not advocating forcing people to learn to code against their will…
I've never had a piece of art or drawing save work/time/money for me but we have apps that do this everywhere.
Art is an amazing creative outlet and I've seen some awe inspiring drawings/paintings but I've never seen one with a tangible benefit.
I think if you asked several highschool or even college students who painted Starry Night or Washington Crossing the Delaware you'd get a lot of blank stares. Ask the same kids if they know of or use Facebook; I'd bet more kids know about Facebook.
I'm not saying that everyone is cut out to be a programmer but I do support everyone trying it out. Zuckerberg didn't create Facebook with a pencil and paper.
Of course, that's taking things to an extreme, but you get my point. And sure, it took him longer than a weekend, but I doubt most 'disruptive' works of programming were born in a single weekend.
(EDIT: I'm not sure why Luther's 95 Theses popped into my head above any other body of work. But it's pretty indisputable that it was awfully impactful, and were, largely, just pen and paper (or quill and parchment... whatever :)))
Gandhi made a huge impact on a vast number of people and all he had was a white cloth and a pair of glasses! (albeit it took longer than a weekend)
Joking aside, if everyone learnt to programme then there would be no need for specific programmers. Yes, it's frustrating when people don't know the basics, but I have no idea what to do when it comes to plumbing. These are very distinct jobs. I take my car to a mechanic for the same reason. I do not need to know how the plumbing in my house works to take a shower, or how an engine works in order to drive my car. Facebook or Amazon do not require their users to understand how programming works.
If your code requires someone to understand the basics of programming then you have failed as programmer to understand your target audience. Granted you have apps that save you work/time/money, but your basic user should not need to understand what is going on under the hood.
1) Those who like it will take it further.....
2) Even writing a trivial program requires getting certain sorts of thought processes right. Once you can write trivial programs you may not be valuable as a programmer, but you will be empowered to interact with computers if you ever find yourself in your chosen work on a tangent where that's helpful.
Consider art. You draw a picture with pencil and a piece of paper. In programming, you define a process of drawing a picture.
True, you can still draw by hand just fine. However, imagine a picture that only exists when someone is looking at it—a picture that you can't draw in advance, only define a process that will draw it at someone's request. That's interaction, which is what programming is mostly about.
There are other activities that involve defining processes of building things—entrepreneurship comes to mind. However, programming seems to be the only one where building a process of creation is so pure and comparable to simply building a thing.
Singing
Dancing
Standup comedy
Story telling
etc.
So yeah, saying programming is the only field that we can create something from nothing is just hogwash.
You don't have claim that programming is the bestest, most creative and constructive thing ever to say that programming has a mix of creative, constructive activity that is unique to it and can be uniquely satisfying in a certain way (just as painting, dance, martial arts and system administration have their unique aspects).
I know if I had it all to do over again I might trade my math & science classes for drawing.
Heck, even look at the average salaries of illustrators vs. graphic designers.
It's also MUCH easier for a developer to bootstrap and start a project on their own (be it a app, website, or add-on) than a designer/illustrator. The latter group can start some interesting projects on their own without needing to code but they are GENERALLY less scalable and lucrative.
If you can clearly and passionately describe a change you want to see in the world, you can get a lot of people behind you. Writing does, and always has, helped with this. I'd say being a very good writer can have a lot of benefits.
Now if you pair good writing with good computer skills, you have a the ability to get a powerful message to billions of people =]. I'd say they are both complimentary and extremely useful tools.
Have you considered a pencil and a paper? Crayons? Markers? Paints and a canvas? A hammer, some wood and some nails?
"Ah, but that requires something to create something!" Yeah? So does programming. It requires a computer (or access to one). It requires programs to run your code - free or otherwise. In fact, I'd argue the barrier for entry into programming is SIGNIFICANTLY HIGHER than MANY other creative outlets.