Every SEO should learn at least 2 programming languages.
Two languages means you can program. One means you can read a manual.
You can easily learn one language and have no grasp of programming. Learn two, though, and you learn some of the stuff that all programming languages have in common. You have to focus on the method as much as the syntax.
My early ColdFusion experience taught me that. The first time I looked at a Python script, I felt like I was reading a transcript of 400 gibbering monkeys. Once I figured it out, though, PHP was pretty easy.
You’ll learn why developers hate you
You’ll understand why, when you tell a development team your recommendations, they look at you like you’re a damp, smelly cigarette butt in their soup. Programming is hard. I don’t care what the elite say. It’s a pain in the arse. You’re asking them to do more of it.
Most scripting languages are documented by small troops of demons-in-training. They earn their first Sadism Merit Badge when they complete a developer wiki that provides 85% of what some hapless schmuck will need to know.
For developers, that means small changes can be a nightmare of scornful Stackoverflow.com replies, hours of tooth-grinding Google searches and several smashed keyboards.
The worst part? You’re probably asking them to do something ridiculous like change every third instance of ‘car’ to ‘automobile’. If they’re going to suffer the Wrath of the DocuTormentor, they’d rather be building the next Twitter.
You’ll understand the mindset
There’s a certain problem-solving method that supports good programming. ‘Good’ problem solving does not mean another nested loop.
A good programmer divides problems into small, digestible chunks and solves them, one at a time. And they’re driven to find elegant solutions.
I’m not a good programmer. I generate code that reads like a James Joyce novel. But at least I understand why that code sucks. It’s a start.
More important, I’ve started applying this kind of thinking to my whole company over the years, and it really works. Some great strategies come from the programmer’s mindset: Scrum, for example.
Learn to code and you’ll understand the coder’s mindset. That’ll help you in lots of pursuits.
APIs will open before you
A lot of your job as an SEO is gathering numbers. Lots of numbers. From all over the place.
If you learn just a wee bit about scripting languages, you can access APIs (Application Programming Interfaces) and collect all of that data in one place. Then, you can build your perfect internet marketing dashboard. Which I’m almost done doing in Google Spreadsheets, thanks to their App Script.
It will upgrade your bullshit detector
As an SEO, you probably work on teams that include developers and designers. You’ve probably also been in conversations like this:
SEO: I’ll need to be able to edit the title tag on each page.
Dev: That’s not possible.
Dev: The frendidges of the bensinator won’t let us froggle the cubist.
SEO: head explodes
Learn programming and you learn a bit of the guts of your web site. You’ll have a clearer idea of what’s possible and what’s not.
You can help, instead of causing trouble
The term ‘SEO’ triggers a number of defensive responses in developers. They either:
- Say ‘SEO is a bunch of crap’ and walk out;
- Squeak ‘We don’t have any resources’ and flee;
- Hit you with a piece of furniture, roll you down the steps and outside, and walk away, whistling.
There’s a good reason: Developers interact with their coworkers in two ways:
- When the coworker presents a ridiculous problem like ‘I don’t want to hit the SHIFT key any more. Why can’t the computer just know when to capitalize?’;
- When the coworker rakes the hapless developer over hot coals because they didn’t write the automatic shiftinator in 2 hours.
When you walk in, you become one more troublemaker.
You, though, can do two things to make their day brighter: First, you can very diplomatically suggest a solution to the problem you’ve presented. Second, you can accept their estimated schedule without a single hrmph, guffaw or sniff. You can even (gasp) ally with them. Present a united front. Fight the good fight for speedy sites and good SEO.
If you want to learn Python, try Learn Python the Hard Way. Buy the book and support the guy who wrote it, too.
If you want to learn Ruby on Rails, I have no idea. I start up the RoR server on my laptop, and my brain shuts off. I can’t write a single line of code in it.
Learn SQL! Even if you think I’m full of poo, learn the Structured Query Language. It makes a lot of stuff go, from simple search tools to content management systems. Pointing and yelling incoherently when things break is bad. Knowing what makes stuff go and contributing to the solution when things break is good.