Don’t tell me not to learn!

I mentioned at the start of the year that I was doing CodeYear. You may be wondering how that is going. Still going strong! After about 5 weeks I cobbled together a little DNA-translator; a few weeks later I finished the entire JavaScript section.
We’re now in html/css lessons, but I already know most of that, so I’m not learning much right now. (I did learn one important new thing, though. I found out why so many websites look the same these days. Twitter Bootstrap! Aha! Oh Twitter, how far your influence stretches…)
So, it’s still fun, and I’m still learning things.
I actually tried to teach myself some coding (Python) a few years ago, but had to admit defeat – something I don’t easily do. I bought books and everything. I thought I’d be okay because I did take some classes at university. But even with the beginner books I was stuck. Why? I didn’t know what to use to actually type the code in, compile, run – all that stuff. I could write code in a text editor…and then…what? I had nothing to work in.
CodeYear is web-based, so you type in the browser, and now I can finally play around with things. When I made the DNA translator, however, I still had to google a bit to find out how to actually put javascript code into an html file so that I could display it on my own site. (I’m guessing they will teach this at some point, but we hadn’t covered it yet in week 5.)
I mention this to emphasize the difference between Learning to Code for Fun (which I’m doing) and Learning to Code for Serious (which involves knowing exactly what platforms to run your code on before you even start to learn the language, and not typing in browsers).
It’s rather like the difference between learning science from watching a lot of science documentaries and visiting the science museum, versus learning science in actual labs at actual universities. If you want to work in science, you do the latter. If you’re just interested and want to know more, you do the former.
If there were no documentaries and science museums, someone interested in science (but not professionally) would have to get their hands on university textbooks or journal papers and just jump in the deep end. That’s how I felt when I tried to learn to code a few years ago and didn’t even know what program to write the code in.
So as a geek-of-all-trades who likes learning more about everything, I’m happy that there is a site that lets me play around and learn things, just like I can learn more about geology by visiting a museum or watching documentaries or looking at rock formations while on vacation. And if I don’t want to code or don’t want to learn about geology, I don’t have to do those things. Nobody is forcing me. Nobody is forced to learn anything about science after the age of about 15, and yet there are lots of people visiting science museums and watching science programming to learn more about cell biology or physics or geology.
Wouldn’t it be weird if geologists got upset that random people wanted to learn more about geology? If they wanted geologists to be the only people to study rocks? That is apparently how some programmers feel about coding outreach projects. I read this blog post yesterday, and even commented, but it’s still bothering me. Today I realized why:
I should be allowed to learn ANYTHING I WANT.
EVERYONE should be allowed to learn ANYTHING THEY WANT.
I love when people do science experiments on their own, and I have never met a scientist who was opposed to the concept of amateur scientists. We don’t always take them seriously, but surely anyone can do science if they want to! What is this ridiculous elitist attitude of stating that non-programmers shouldn’t code?
You’re only making me want LEARN HARDER.