Tuesday, May 15, 2012

Learn to code? Why not?

(mostly a transcript of a comment I just posted)

Imagine if Mike Bloomberg, major of New York wanted to learn to play the guitar. To which guitarist guild would reply: "NO! Don't learn to code! There are millions of terrible guitar players, we don't need any more!".

Then Mike Bloomberg decided to learn astrophysics. To which Neil deGrasse Tyson would take offense. "Can you explain to me how Michael Bloomberg would be better at his day to day job of leading the largest city in the USA if he woke up one knowing the total mass of Andromeda?"

So, these thoughts sound nonsensical. Yet somehow, in regards to programming, they are not instantly nonsensical. At least not for many people. As coding Horror' post Don't learn to code and many of the comments placed in there would show.

The "everyone should learn to code" movement isn't just wrong because it falsely equates coding with essential life skills like reading, writing, and math"

Programming is math.

Look, I love programming. I also believe programming is important … in the right context, for some people. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing. That'd be ridiculous, right?

Which makes me wonder what is Jeff's problem with more people learning plumbing?

So, why not. If you want to learn plumbing why not. Worst case scenario, plumbing is not for you and you trying to learn it will make you figure that out.

Our schools teach us music, calculus, sports, chemistry and a lot of stuff that we won't necessarily use in our lives. So what? And again, What is wrong of learning for the sake of learning? That is part of what makes us human.

What Jeff is saying sounds to me like this: If more people learn to code, we will have more bad coders. Boohoo. Suddenly we are back to medieval time, and we are suddenly afraid of other people learning our precious knowledge, really? Is this much better than Pythagorean hiding the square root of 2 (Just been reading Carl Sagan lately, sorry).

Also, what is up with this?:

Please don't advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to:

  • Research voraciously, and understand how the things around us work at a basic level.
  • Communicate effectively with other human beings.

These are skills that extend far beyond mere coding and will help you in every aspect of your life.

Why not, if you want to, learn coding and also learn those things mentioned? I mean, it is not like we had to choose between the two. I see no issue with a human being learning all those things AND coding. If that is what she would like.

Rant: Just because industrial engineers exist, does not mean you shouldn't ever give carpentering a try. And in that regards, just because your job uses something as lovely and wonderful as programming as part of the million of times more ridiculous, silly and frustrating process that is making software for boring business, it does not mean that everyone else should be denied the joy of programming. There are a lot of ways amateur programming can work as an entertaining hobby that is outside of the lame thing that software development is. We got modding, the demo scene, scratch, algorithm contests, games.

More so, more programmers means not only more bad programmers, but also due to any law of proportion, more good programmers.


Mystic Ranger said...

Coding Horror does make a vaguely blanket statement in saying don't learn to code, and you pose all of your statements as contradictions you believe to his assertions. But barely, if any of what he writes, actually goes against what you're saying.
So here's my take, on how he doesn't really disagree with you, he's just posing a different standpoint. Programming is math. Just like trigonometry. Or calculus. Any mathematician, would like more and more people to gain an exposure to math. Because a lot more people would be good at math if they experienced it in a better setting, more appropriate to how it happens, programming being one of the thrilling experiences under math. But none of this, should be something people learn as an obligation. Programming is adequately ahead in the curve, to be completely optional. It's not like people should not learn to code. And I don't think codinghorror's saying that either. It should just not be something forced.
Especially when he says the final things that one _should_ learn, to research and learn how stuff around us works. I think that statement's very wide-spanning, in the sense that programming is yet another way to understand, and interact with how things around us work. The important point, is that people should engage in journeys of curiosity, and do what they enjoy. That does not mean they should specifically, not learn programming. Whereas, people shouldn't go out and learn programming, [just] because we're in this digital age of computers. Just because everybody says it's the cool and/or important thing to do. There are numerous other things to do outside that might excite you more.
Incoherently matching with my above analogy, don't learn advanced math because people start asserting it's important. That will lead to more and more people doing math poorly, and hating math (as is largely the case).
That's what I believe coding horror was trying to communicate with his post, smudged together with some of my own views. :)

vexorian said...

I just do not think anyone is forcing anyone to learn to code. I know there is some rethoric among the learn to code group. But I do not think it is much different to encouraging people to enter sciences.

I think I still disagree though. I think it is better to have more people hating math, that more people knowing less math. If people are forced to learn to code, I think that discouraging them saying that they should learn to write is not the best reaction. I think we should take advantage of this and help them have a rich experience rather than complaining. I also think that the assertions that Bloomberg would certainly do poorly at coding were out of place.

I think that CS itself would have been a high school topic like accelerated movement if Newton spent a little of his time inventing queues and stacks rather than trying to find a bible code. Just like CS, high school physics are really not essential for life and are only of limited use as an introduction to the physics structural engineers use. Thus we are already in the habit of making people learn stuff that is not essential for their lives for no reason :)

Mystic Ranger said...

That point might at the end of the day be just subjective opinion, but I don't believe it's better having more people hating math, as opposed to more people knowing less math. Doing math, is by now, largely an obligation. A majority of what is taught, beyond the very basics, is not required at large. And this is true of many things in the education system apart from math. The issue with obligatory learning, especially as a part of an education system, becomes the dispassion with which teachers communicate, and the silly marks-oriented learning that students obtain. This leads to very very few people happening to be good at math, and lots of people who could've been good at math, end up hating it, or believing they're poor at it because of scores.
I do agree that we're already in the habit of making people learn non-essential stuff. But I'm fairly certain that's not helping us much.
It is not fair to say that Bloomberg would do poorly at coding, either. I don't see any issue with the fact that he tried learning to code, to be able to follow the case better (or perhaps any other reason), as long it's something of his own choice, and not following a fad or perceived necessity.