asks:
Hi, You're a genius by the looks of things. I want to know about coding. I want to learn ONE language well. I don't know where to start. Python looks the cleanest and most logical. Java looks like the most used. C / C++ seems to be famous. What would you recommend and where would you begin? Thanks !

Um, thanks, I think? I’m not sure what you’re looking at that makes me seem to be a genius. I am not so different from most people, and I assume you would not describe most people you interact with as a “genius,” which makes me question why someone like me is described that way.

Here’s one possibility: I share what I know without an expectation of exchange. That means I provide a lot of value to a lot of people, which is probably part of what makes them think I’m somehow “a genius.” ;)

Sharing knowledge in this manner is literally incompatible, by definition, with any measurable valuation system, such as money. You, along with most people, including me, were taught by parents, teachers, employers, friends, or other cultural authority figures never to give something away “for nothing.” That’s why learning about coding through traditional avenues costs so much money; knowledge is power, my friend, and no one who wants your money wants to just give you power. The entire modus operandi of school and business, including the contemporary university, is to obtain power over you, to dominate you.

Fuck that shit. In the words of Assata Shakur (who you should look up if you don’t know her story):

No one will ever give you the education you need to overthrow them.

True that.

So, you want to know about coding, do you? First, why? What’s your interest in learning to code? You don’t need a well-articulated reason, of course. You could just want to learn the same way you might just want to learn to play the flute, just because it looks like it’s kinda cool. That’s a valid reason.

But taking some time to ask yourself the question, even if you don’t have an answer, is a worthwhile exercise because it’ll help guide you through the endless decision tree you’re about to explore. Should I learn X or Y, read this article or that, spend my time on this project, or that other one? If you don’t know why you want to learn to code, these questions are going to be a lot more aggravating and thus erode your desire to learn a lot quicker than if you have spent some time thinking about what interests you about code.

That question will also help you figure out which of the languages you should pick up. Whether or not a language is clean and logical, popular, or most famous, all of the criteria you seem to be using right now, are completely irrelevant. It doesn’t matter how popular or famous or clean a language is. Does it interest you? Do you want to learn it? If so, do you know why? Those questions matter. How popular something is is a totally bullshit distraction and has nothing to do with its possible value for you.

So, first lesson: coding is about writing your will in silicon.

Second lesson: all code ultimately becomes a string of 1s and 0s, so it doesn’t matter what language you write in, or what technology you use. If it doesn’t express your will, it’s wrong, and if it does, it’s right. It has absolutely nothing to do with what technology you use. What matters is whether or not you have successfully written your will into the computer.

When thinking about all this, I’m often reminded of quotes like this one by Shankar Vendatam, author of “The Hidden Brain”:

Those who travel with the current will always feel they are good swimmers; those who swim against the current may never realize they are better swimmers than they imagine.

So if you are going to use code to build, I don’t know, a loyalty card program for chain stores in your area, or a new financial product for a bank, or yet another Web-based e-commerce system, or anything like the stuff people are already using it for, you might as well just go buy a beginner’s book in any random language, it doesn’t matter what, and copy all the examples already in that book. You’ll have no trouble, you’ll feel you’re a good programmer, and nothing will ever be interesting or even all that challenging for you.

After all, every example in every book I’ve ever picked up about code uses those trite, boring, fetishistically capitalist examples, and you don’t need any of my advice to be successful in that area.

But you’ve asked me where you should start learning about code, not some book. And given the easy availability of all this information elsewhere, I have to assume that you’re looking for an answer you can’t get, or at least aren’t likely to get, somewhere else.

Well, here it is, here’s where I think you should start: https://www.tumblr.com/developers. Why Tumblr development? Because I already know you use Tumblr.

I didn’t learn how to code because I wanted to learn how to code. I learned how to code because when I was 12, I wanted to get the fuck out of school, and I thought that if I made a website about how much I wanted to get the fuck out of school, more people would know why I wanted to get the fuck out of school. And the reason I wanted to make a website about that was because I was reading websites about how much school sucked, and I wanted to do the same thing.

Turns out that was extremely valuable practice for, y’know, everything. The best thing I learned from school was how to resist institutional indoctrination such as schooling. And, in the process, it became ever more evident that “schooling” is what others do to you, and “education” is what you do for yourself.

So start with what and where you are right now. Which is Tumblr, I guess. Make a custom theme. Or just tweak your own theme. If you’re set on learning one of the languages you mentioned, then you might want to take a look through my Python Tumblr utilities (here’s a Python script that prints all the unique tags used on a Tumblr blog, and here’s one that downloads all of a given Tumblr blog’s images and saves them to a folder on your computer), copy them, and then change them to do something slightly differently to learn how they work. Y’know, take it apart and put it back together again. if you want a bigger project, you could start using my “Bring Your Own Content” Web publishing virtual appliance, which has a Tumblr plugin, and try your hand at writing new features or working on its bug list with me. (That way you’re immediately learning how to participate in free software development, in a social group, too.)

Also, here’s another whole post I wrote about learning to program that you might find interesting, as it has links to freely available resources like books and tutorials and stuff.

So, yeah. That was a bit more rambly and soap-boxy than even I was expecting, but there ya go. Hope it helps!


This blog is my job. If it moves you, please help me keep doing this Work by sharing some of your food, shelter, or money. Thank you!

PayPal
Donate Bitcoin
One-Time Donation via Fundly/WePay