Monday, March 29, 2010

Sunday, March 28, 2010

Batman, Satan, And Darth Vader

The really interesting thing about Batman is that he's the same archetype as Darth Vader and the figure we used to call Satan. A few hundred years ago, the Devil's other name was the Black Man, and they said he flew like a bat.



The archetype we call Satan, of course, once went by the name of Pan.



The goatlike features commonly attributed to the devil derive from the Greek pastoral deity Pan, who was half man, half goat. I have here a picture of a sixth-century Coptic ivory carving of Pan, and if you take away the pipes and give him a pitchfork, you're looking at the devil, complete with cloven hooves, hairy legs, horns, and beard. Oh, and prominent genitals, too.

The phallic aspects tend to get airbrushed out of the modern picture of ol' Scratch, but let's not kid ourselves. When Christian artists pondered the most dangerous and subversive of the deadly sins, they weren't thinking of securities fraud. It was only natural that they should seize on the frankly sexual figure of Pan. (I'm thinking here of Pan-as-old-lech, not the romanticized Disney version.) I mean, if you want a truly disturbing portrait of wickedness, what are you going to pick up on, mass murder? Too alien. Whereas sexual license . . . I'm not pointing any fingers, but this is a topic to which a lot of us can relate. Pan also had the advantage of being pagan, and since time immemorial the gods of one age have been the demons of the next.


These guys don't really come and go so much as they swap names like they were playing musical chairs.

Tuesday, March 23, 2010

Net Neutrality



Take Action Now

I'm Not A Programmer, Because Programmers Don't Exist

Here's what I used to hate about being a programmer:



I'm happy for this guy and all, but the idea that "my company let me make a decision about my code" used to make my blood boil with fury. My code is my code.

I say "used to" because it's not an issue for me any more. I don't code for hire. Depending on your point of view, I might not even be a programmer any more. If "being a programmer" means "writing code for somebody else for money", then no. I make my money coaching programmers, marketing a video I made about programming careers, and blogging. I even make a tiny, tiny amount of money speaking at conferences.

But I still write code. It's code for my own purposes - most recently it's little FasterCSV sessions in IRB, deciphering information from PayPal, Reddit ads, and my bank. If your definition of "being a programmer" just means "somebody who writes code", then I'm in.

You might wonder what my definition is. I don't have one. And as for your definition, I hope it serves you well, but I don't care about it one way or another. My opinion is: I'm not a programmer, and neither is anybody else, because programmers don't exist.

The world you believe you live in sometimes makes more of a difference than the world you actually do live in.



A few years ago I became convinced that a "programmer" is the equivalent of a medieval scribe. Scribes got money for their literacy. That was it. They had this skill which we now consider a fundamental requirement for democracy and/or civilization, a skill without which our world would fall apart. The skill was rare at the time, so they got paid just for having it.

My original interpretation was that programmers are people who have a skill which has already become a fundamental requirement for democracy and/or civilization, and if there are any places where our world is falling apart, such as journalism, it's because people in that field lack this fundamental skill. The moment you find a journalist who has this skill, you find capability and success. Similarly, technical literacy made the Obama campaign happen.



Technical literacy is a requirement for success in the political arena, just as in business and everyday life (try meeting people and telling them you're not reachable online in any way, shape, or form).

A simpler formulation and corollary: programming is not a what. Programming is a how.

Before we get into that, let me take you on a quick detour through the more complicated formulation, and its corollary. We'll start with fractals.



Fractals have a quality called self-similarity. Fractals share this quality with recursive functions, owing to the fact that they are visual representations of recursive mathematics, of which recursive algorithms are actually a subset. What self-similarity means is that features at a microscopic level correspond to features at a macroscopic level.

Here's a famous fractal, the Mandelbrot set:



And here it is with self-similar features highlighted:



Technical illiteracy is self-similar. I'm tempted to call it fractal as well, but that brings up questions which could turn this into an extraordinary tangent (or just an even more extraordinary one, depending on your opinion). The point is the self-similarity. Not only are there pockets of technical illiteracy in the knowledge of any technical literate - for instance, a Unix wizard might know nothing of Objective-C - but new pockets come into being every day.

Not only that, but many of these new pockets also create bubbles of intense demand. Examples include Rails and the iPad. Within bubbles of intense demand, the base rate inflates. When you see a programmer of average skill making a better rate in a hot new technology than a seasoned, masterful programmer makes in a less trendy language (or framework, or piece of hardware), it's because there are always new areas of technical illiteracy for the fast learners and pioneers to exploit.

You can make a good living this way, but you can make a good living a lot of ways, especially if you have a type of literacy so essential that the world falls apart in its absence. And that brings me back to the simple formulation. If programming is not a what, but a how, then "what?" is an open question.

Most people answer "what?" with "sitting at a cubicle." Some people answer "what?" with "hanging out with smart people, solving problems and learning new things for the fun of it." But there are lots of other answers.

Not long ago, I was using programming to learn more about the entertainment industry and to get better at making music. Today I'm using it to work from home in my sweatpants, looking out my living room window on a beautiful sunny day with birds singing in the trees outside. Tomorrow I might be doing something new with it.

Answer "what?" the way you want to. It might seem difficult, but there's a great sense of victory to it when you do.


speaking of victory

Monday, March 22, 2010

Steve Jobs Has Victimization Issues

In the early 80s he created a revolutionary product based on the idea that people should actually listen to Alan Kay.

Then he gets ripped off by Windows. He sues. He loses.

Microsoft proceeds to take over the world by making an inferior copy of the Macintosh into an open platform. More people want the system with the most apps than the system with the most perfect interface. Bill Gates pockets billions.

In 2010, Jobs again creates a revolutionary product based on the idea that people should actually listen to Alan Kay.

Now he's suing HTC, because Google is making an inferior copy of the iPhone into an open platform.



What does he think is going to happen? We've already seen how this story ends. More people want the system with the most apps than the system with the most perfect interface. And Steve Jobs should know this, because we all learned it by seeing what happened to him.

Fool me once, shame on you. Fool me twice, shame on me. I say this as a fan of the inspired artist that Steve Jobs is: if it really bothers you so much to get fucked in the ass like that, why don't you just stop taking your pants off in public and bending over for no reason?

Sunday, March 21, 2010

I've Read Five Steven Brust Books In The Past Two Weeks

Three in the last two or three days:







Two more (combined in one volume) while travelling to, and during, MountainWest RubyConf:

Another Video Testimonial

Saturday, March 20, 2010

Friday, March 19, 2010

MWRC 2010 Pix



Me with Matz.



The view from the house where I stayed.



Matz giving his presentation.



Pretty truck.



James Britt giving his presentation.



Some local graffiti.



Ben Maeby uses a Salt Lake City orange flag to alert drivers to his existence and prevent a painful demise. James Golick dodges the paparazzi with nimbleness.



James Golick with Matz.



Dinner: Matz, me, David Brady, Chad Woolley, James Golick, Andrew Shaefer, Alistair Cockburn.



After dinner. Same ppl as above, minus Alistair Cockburn, plus Brian Mitchell, Brandon Dimcheff, and Ginny Hendry.

Plenty more where that came from!



Totally irrelevant "graffiti" I drew with Prismacolor markers.

Thursday, March 18, 2010

Mark Dery On Zombies

Mark Dery (who also wrote the brilliant Culture Jamming way back in the glory days of Fringeware Review and the original print version of bOING bOING) wrote an essay on zombies.

Previously on my blog:

What Zombie Movies Are About
Link Roundup: Zombies And Postmodernist Literary Theory

Wednesday, March 17, 2010

Sunday, March 14, 2010

Monday, March 8, 2010

Programmers: What To Do If You Get Fired

If you've been fired, take heart. It could be worse. The worst time I got fired, a cop took me out of the building in handcuffs. Soon after, I started a new job, for twice the hourly rate. In 2008 I got fired another time, for throwing cream soda in another programmer's face during an argument about whether or not we were really doing Scrum. That was pretty awful behavior. But soon after, I started a new job, for twice the hourly rate, working with a member of Rails core and some of the best programmers in Ruby.


cream soda, via ssmallfry on flickr

Now please understand, I'm ashamed of myself for this cream soda incident. With the cops, I was in the right, but with the cream soda, I shouldn't have done that. I'm not saying to you, "hey, guess what, you should throw cream soda in other developers' faces, because it'll lead to you working somewhere better for twice as much money." That won't work. It's a bad idea. I'm telling you that I've got getting new jobs so well figured-out that not even behavior which was borderline insane ever stopped me from getting a new job.



I once got fired for refusing to work. The manager came into the room, asked me to do stuff, and I flat-out refused. I literally said, "No, I'm not going to do that, it's boring." So I got fired. These things happen. I struggled for a bit, and then I recovered. In my defense, the code really was very boring.

If you get fired, you should learn from me. I'm not saying you should copy every single thing I do. That would be very unwise. If your manager tells you to do something boring, you should probably just do it. Definitely skip the cream soda incident. At the same time, I can teach you some things. For instance, I can teach you:

How To Get A Kickass Job, Making Six Figures Working From Home With The Stars Of Your Community, Even If You Just Got So Fired That The Cops Hauled You Out Of The Building In Handcuffs



Actually, it's even better than that, because I did some of this in the middle of the worst recession since the Great Depression.

I'll tell you the stories of these deranged incidents, but before I do that, I want to point you to a post on Coding Horror:

I find it difficult to believe, but the reports keep pouring in via Twitter and email: many candidates who show up for programming job interviews can't program. At all.

If many people who show up for programming job interviews can't program at all, it means that the way people hire programmers is broken. Since some people who show up for programming job interviews not only can't program at all but also get the job anyway, in stupid and/or dysfunctional companies, we can take this as an extreme data point indicating a broad systemic flaw. From the hiring manager's point of view, it means the traditional system is completely fucked and you should hire a different way.



But this post is about what to do if you get fired, and that means we're not focused on the hiring manager's point of view. We're looking at it from the other end. If the set of people who get jobs as programmers and the set of people who can write code are distinct sets which do not always even overlap, then getting a job as a programmer is a completely different skill than programming, and a person who wants a job as a programmer should master both skills.

In fact, a cynical person would say that if getting a job as a programmer is a distinct skill, then a person who wants a job as a programmer doesn't need to learn programming. Programming becomes a nice to have, and getting a job becomes the essential skill. Fortunately, most programmers are not that cynical; unfortunately, they go to the other extreme.

Most programmers I know seem to respond to job searches by learning new programming languages. The logic there is pretty weak. "I can't get a job with a language I know, so why don't I see instead if I can get a job with a language I don't know." Learning new languages is a good thing, but there's a time and a place for everything. It's never a matter of your skills being stale; there are still COBOL jobs out there. If you're good at programming, and you can't get a job, the skill to improve is not your programming skill but your job-getting skill. If you've got a task that requires two skills, and you have one of those skills down solid, but you suck at the other skill, the thing to do is not spend even more time perfecting the skill you already have down solid.

Now, let me tell you, it was rough getting arrested.



From the cream soda incident, you might imagine I did something awful, violent, or crazy. In fact, it was a lot less exciting than that. I was working late one night. I bumped into another car in the parking lot, pulling out of my parking space. In California that would put the other car automatically in the wrong, because I was in reverse at the time, but this was in New Mexico, which might seem like a tangent but is about to become very relevant. Anyway, this was a totally inconsequential collision at about two miles per hour, but the other driver asked me for my insurance, so I gave it to her, and then I asked her to give me hers, and she refused.

I was tired, hungry, and irritable, so I bickered with her, and argued with her, and told her if she didn't give me her insurance, I was going to call the cops. She refused, so I called the cops. The cops told her that she had to give me her insurance info. Then they arrested me and took me away in handcuffs.

Here's why.

In many places, if you forget to pay a few speeding tickets, the DMV sends you a letter demanding their money. In New Mexico, they don't bother to send you a letter. So few people even have driver's licenses in the first place that the DMV usually doesn't know where anybody lives, and when they do, they don't bother wasting the postage. They file arrest warrants instead.


the new mexico state flag

New Mexico is an unusual state. It doesn't just have a terrible drunk driving problem; it also sees police officers, judges, and high-ranking state officials charged with drunk driving on a regular basis. The state also has lower hiring standards for law enforcement than some other states. The NM state troopers put massive billboards on the major highways to recruit new troopers. The billboards reassure potential applicants that a GED is enough. Anyway, for whatever reason, New Mexico police departments have a rule. If cops go out for any reason and talk to anybody about anything, they check with the DMV to find out if that person has any outstanding arrest warrants. The other rule: no warnings. They are required to arrest, and even if you co-operate peacefully, they are required to use handcuffs.

Senator Phil Griego says he knows about drunk-driving first hand. The New Mexico state senator is an admitted drunk driver.


crash pic from how_long_it_takes on flickr

"I was drunk when I was on the city council, I was drunk when I was vice mayor of the city of Santa Fe, and I was always driving. I just never got caught."

My own mother, in her grey-haired innocence, had to fight an arrest warrant in New Mexico. They charged her with some alleged traffic misdemeanor on a day when she was in fact thousands of miles away in the United Kingdom, caring for her aging father, my grandfather. She had proof, too, but she still had to drive to the county courthouse, 75 miles away, to untangle the legal mess - and hope that she wasn't pulled over for speeding on the way. "No warnings" means "no warnings."

Long story short, I had a warrant out for failing to pay some speeding tickets. In some parts of the world, that might earn you a warning. Not in New Mexico. The cop handcuffed me and put me in the back of his car, but he did it apologetically, and he told me he wished he could arrest the crazy lady who had refused to give me her insurance instead. She hassled him, demanding to know what he was doing, and he told her it was my business, not hers.

But she had her daughter with her, and she had to know what was going on. Also, she was fucking crazy. So she went on Google with my insurance information, looking to find an explanation for what terrible crime I could possibly be guilty of that would justify being hauled out of the building in handcuffs, and she found, on page 10 of the search results for "Giles Bowkett", some sick joke I had made five or ten years earlier, and the next morning, she called every business on the block to tell them that my employer was harboring a child molester.

Meanwhile, I was being illegally strip-searched in a New Mexico jail, along with about 15 other inmates. The warden wanted to make sure I wasn't hiding cigarettes in my anus. I'm not exaggerating at all.


african grey chewing cigarettes, from flickr: because giving cigarettes to a parrot is almost as crazy as sticking them up your ass

New Mexico law enforcement is not the best in the country. A year later, a court awarded me some cash for this, along with hundreds if not thousands of other people, as part of a settlement in a class action lawsuit. Anyway, once I got out of jail, I found out that my company's neighbors were all pressuring my boss to fire me.

Again, if you live in a city somewhere, it might be hard to understand what New Mexico is like. The first day back on the job, my boss's first question was not, "What happened?" or "Why were you arrested?" The first question was, "Were you beating up a homeless guy in the parking lot on the day before you got arrested?" The second question was, "Are you a child molester?"

The crazy lady's rumors had taken on a life of their own. The absence of proof for the allegations made no difference. It was easy to prove I hadn't been beating up homeless people in the parking lot, for that matter, but that made no difference either.


from vek on flickr

My boss was sympathetic, even though she fired me, buckling under the pressure. She recorded the crazy lady's voicemails and put them on CD for me. I took the CD to a lawyer, who asked what kind of car the crazy lady had been driving. When I told him it was an old, beat-up Ford Taurus, he said, "Look, it doesn't sound like there's any money in this, and if this lady really is crazy, you have to realize, she might enjoy legal action. She might see it as a spotlight and relish the attention. If you go after her in court, you could be having her in your life for months or years to come."

He also reminded me that the New Mexico court system features a lot of corruption and incompetence:


I wanted to show you a more egregious example of an NM judge being arrested for something terrible - a guy who reduced sentences for women if they went down on him - but I couldn't find it on Google, partly because there have been so many NM judges arrested for various things over the years.

So I shrugged and got on with my job search. And I had a new job in a few weeks, making twice as much money, working with better technology, because that's how I roll. The same way that, years later, when I got fired for throwing cream soda in another developer's face in the middle of an argument - a terrible, aggressive thing to do - I again immediately went on to get a better job with better technology for nearly twice as much money.


now that we're past all the depressing stuff, here's some puppies from flickr

Now this isn't just because I'm good at getting jobs. It's also because the job market for programmers is a little bit crazy. The same skills can land you with a fantastic job or a terrible one. If you don't understand how to get a great job, you could rock hard at compilers and threads, yet still be cooking up porn sites in PHP for shady "businessmen". That's a real-world example - I know somebody in a very similar situation, and through my coaching program, I'm getting them out of it. And everything I just said about jobs is equally true for salaries and hourly rates, and equally true for co-workers. The same programming skills could land you with nimrods or geniuses, or handfulls of cash vs. nothing but pennies, because getting a programming job is not about programming skills, but job-getting skills.

That's why I want to tell you:

How To Get A Kickass Job, Making Six Figures Working From Home With The Stars Of Your Community, Even If You Just Got So Fired That The Cops Hauled You Out Of The Building In Handcuffs

By the way, if this madness happened again today, and that crazy lady went on Google looking for crimes to suspect me of, she would not find today what she found back then. Even though I was completely innocent, and even though the lady was obviously nuts, I buried that remark forever. Random sick jokes from 1995ish do not show up in Google when you search for "Giles Bowkett" today. You'll first find this blog, with its hundreds of posts, or gilesgoatboy.org, or giles.tumblr.com, or gilesb.com, or gilesbowkett.com, or my accounts on Flickr, Facebook, Myspace, YouTube, Vimeo, and LinkedIn, or my over 16,000 tweets on Twitter. That's deliberate. One big message I got from that crazy experience: control how you appear on Google.



The other big lesson will probably surprise you. Every time I got fired and picked up a much better job almost right away, that was the wrong move. More recently, I got fired again, and this time, I made the right move. I didn't go and pick up a much better job right away. I had a much better job lined up, but I didn't take it.

The first thing I did when I got fired: I made a mental calculation of how much income I had from my side business, blog ads, affiliate marketing, and severance pay. It wasn't a lot, but it was enough. Next I began creating an asset to sell or give away to as many people as I possibly could. (Actually, first I watched all 43 episodes of Fullmetal Alchemist: Brotherhood. But next I did these essential other things.)


best anime ever

This is what you should do if you get fired: create an asset and get it to people.

Consider how GitHub hires:

Who would (and do) we hire at GitHub?

Simple: at GitHub we hire "The Girl or Guy Who Wrote X," where X is an awesome project we all use or admire.


If you're aiming to work at GitHub, that means you should A) write something they can use or admire and B) get them to use and/or admire it. Both A and B require intelligence, effort, and skill. Although both require skill, they require different skills. Writing something the peeps at GitHub can use or admire is one skill; getting them to use and/or admire it is another. The first skill is programming; the second skill is marketing. (Actually, let's use the word "self-promotion", because "marketing" has negative (and irrelevant) associations for many programmers.)

If GitHub hires you, you've already aced how to get a kickass job, working from home (or at least a cafe) with the stars of your community. You may have already aced the making six figures part too - I don't know, and it's rude to ask, but I think it's kind of a safe bet. I also think it's a safe bet that I'm the only prominent Rubyist to get fired so bad that cops hauled me out of the building in handcuffs, but you never know. That Ryan Davis guy seems pretty tough. Anyway - if GitHub hires you, and GitHub hires the guy or girl who wrote X, that means you are the guy or girl who wrote X (where X is some project they like). So in order to get a job at GitHub, you need to create an asset and give it away.

That's also the core of what I'm going to teach you. How do you get a kickass job, making six figures working from home with the stars of your community, even if you just got so fired that the cops hauled you out of the building in handcuffs? You create an asset and distribute it. In fact, giving it away isn't essential; you could sell it, too. What's essential is getting it into other people's hands, one way or another. I would start by giving things away - walk before you run - but all that really matters is making it and getting it to people.

I'm also working on teaching people how to write amazing resumes, but that's just a short-term fix. If you ace creating assets and giving them away, people don't even look at your resume. Most of the work I've gotten in the past several years has come from my blog, my open source code, and my presentations at conferences - assets I've created and given away. All of the work I've done with "rock star" programmers, names you might recognize, has come to me that way, either with no resume involved at all, or with the resume less important than the blog, the code, and the presentations. Creating assets and getting them into other people's hands is the best thing you can do for your career.

Earlier I said you can use the word "self-promotion" if the term "marketing" makes you uncomfortable, but you might just as well use the term "Santa Claus." The best, most surefire way to get awesome jobs is to create stuff and give it away. You don't need a suit, business cards, or a college degree. What you do need is generosity.

People think the person with the strongest chance of getting hired is this guy:


corporate droid, from flickr

In fact, it's this guy:



And by the way, this is actually the same fundamental advice you'll get from Paul Graham, when he tells you to start your own company:

When most people hear the word "startup," they think of the famous ones that have gone public. But most startups that succeed do it by getting bought. And usually the acquirer doesn't just want the technology, but the people who created it as well.

...When a startup gets bought for 2 or 3 million six months in, it's really more of a hiring bonus than an acquisition.

Graham's argument is that the best way to get hired is to create an asset (a company) and get it to people (by selling it). The difference is that I'm going to show you how to apply the advice immediately, using free web sites like Blogger and GitHub, and he advises you to focus all your energy to make it happen - saying that "your early twenties are exactly the time to take insane career risks" - while my approach happens part-time, on the side. He also recommends finding investors, and, to be fair, he proposes a bigger upside to match the bigger downside.

Risking everything on an adventure (or whatever) is cool, no issues there, I respect courage, but you can get the same results (at a much smaller scale) in a much safer and quicker way, which scales to a much, much larger number of people, doesn't require any investor to play the role of your big bad voodoo daddy, and is available to both young kids straight out of college and more established programmers who have their own kids to think about.

Creating an asset and getting it to people doesn't have to mean creating a company and selling it; creating a blog and getting people to read it produces the same results, just on a smaller scale. It's also faster, cheaper, with less effort and less risk. Creating open source code and getting people to use it has the same effect, usually at a similarly diminished scale, and the same is true for presentations as well. Paul Graham's advice, that the best way to get a job is to start a company and sell it, is really just a particular instance of my advice, that the best way to get a job is to create assets and get them to people.

Now to be clear, this isn't what I did after the arrest in New Mexico. This was a long time ago, and back then I was still doing things the wrong way. I was writing resumes, submitting them to job ads, and doing all the basic, normal shit you might expect.

Speaking of writing resumes: I'm going to release a video soon that explains how to write an amazing resume. Again, walk before you run; if you're looking for a better job, writing an amazing resume is a good place to start. I don't mean just a better resume; I mean a resume that makes people stop asking if they should hire you and start asking if they can afford you. There's a science to this, and I'm going to teach it.

If you want to know how you can get that video, sign up here.

Going back to my experience in New Mexico, and how I got a new job at double the rate almost immediately after getting arrested, it was by writing a brilliant resume. My resume made me sound like a Perl superstar - in fact it described one particular job in great detail, a job where I had been widely regarded as the local Perl guru - and it happened to land in front of somebody who loved Perl. However, if it had happened to land in front of somebody who loved JavaScript, it would have had a similar effect. I really know how to write a resume. (For that matter, I also really knew (at the time) how to write great JavaScript and great Perl.)

Although I was still using my resume and job ads as my main way of getting work, I had at least begun to figure out that the way to get great jobs was to create cool stuff. I figured it out by accident. After building a lot of private intranet apps that sat in secret on various clients' internal networks, and having nothing out on the public Internet to show for it, I built some demo widgets and wrote some demo code, just to back up the technical skills I claimed on my resume. For instance, I had done some work in Flash, but had nothing to prove it, so I built this and put it on my web site:



Building this little widget ultimately brought in a contract worth thousands of dollars. Not bad for a little bit of hacking for fun, based mostly on copying terrific code by a leading Flash developer. That contract wasn't the greatest project, but life isn't all rock stars and lolcats, and even with the flaws in that project, it was better than what I'd been doing before. The point is, when you create cool stuff and get it to people, things happen.

Big surprise: I've created a new asset, and I want to get it to you. It's awesome. My asset is a movie. I could call it a video training, or a presentation, and I could call it those things because it is those things, but you know what else it is? It's a movie. A feature-length desktop movie. You can probably guess the title, but just in case, I'm going to tell you.

My new movie is called:

How To Get A Kickass Job, Making Six Figures Working From Home With The Stars Of Your Community, Even If You Just Got So Fired That The Cops Hauled You Out Of The Building In Handcuffs

This movie not only answers that question, it also answers it in terms you can understand. Because I'm a programmer, I phrase these things in the language of programming. For instance, when I talk about how to give presentations, I draw on specific research (in the field of neuroscience) which I've used in the past several times to deliver amazing presentations - presentations that drew standing ovations, fervent testimonials, giddy blog posts, and endless praise on Twitter, not to mention presentations people mentioned when they said they wanted to hire me.

I get truly amazing feedback on my presentations. A "rock star" programmer who saw my MountainWest RubyConf presentation on code generation and metaprogramming called it "brain-meltingly awesome." After my GoRuCo presentation in New York, an up-and-coming programmer told me he wanted to be like me when he grew up. After my CUSEC presentation in Montreal, two girls from the audience ran up and grabbed me so they could take a picture with me. (I assume they were programmers too.) My RubyFringe presentation on Archaeopteryx (my open source music-making library), won me an award and praise from well-known programmers and bloggers like Raganwald, Obie Fernandez, Geoffrey Grosenbach, and Zed Shaw.

I can’t describe to you how rapid, funny, inspiring and informative his talk is...an assault on the senses...such an entertaining speaker...massively successful talk...Giles Fucking Bowkett Ruled The World

When I give presentations, this happens to me all the time, and the important thing to realize is that it's not some magical talent that the angels blessed me with on the day I was born. First, I read a bunch of books on neuroscience, because I thought it was interesting, and then I used what I learned to make great presentations. When I say research, I mean scientific research, and when I say I learned stuff, I mean I learned stuff that works every time. Once you understand this research, you can use it too. When I show you how to do a presentation, I don't just say "be interesting" and wave my hands in the air. I give you specifics about how the brain works and what captures the attention and interest of any and all humans. Then I show you exactly what to do to capture your audience's attention and hold onto it.

Likewise, if I'm going to teach you how to promote yourself as a programmer, then sooner or later I'm going to talk about blogging. The negative stereotype about people who talk about how to blog is that they're only worth listening to for utter noobs; that they tell you incredibly basic shit and do it in an annoying, condescending voice which gives you no real technical detail, provides no specifics of any kind, and leaves you wondering what on earth they do all day besides make shit up. Not me! Here's part of how I explain blogging: by showing you how to implement Google's PageRank™ algorithm in five lines of Ruby code.



I'm not saying this because of ego. It's not about "look how awesome I am at this." It's about "look how clear and specific my explanation is." This is code. You can understand this. Some people who talk about self-promotion use vague abstractions that only work for them. Their instructions amount to nothing more than descriptions of their own personalities. My approach: teach you how it works, inside and out, because when you understand the details, you can reproduce the results.

The results in question, when we're talking about good Google juice: people find out who you are and hire you. Or people find out what your open source projects are, and use them, and then (again) they hire you. It's not enough to create great code - although I talk about how to do that as well - it's also crucial that people find it. When they do, great things happen. It's cool when you send a decent company a resume and they call you up for an interview. It's much, much better when you're watching a movie on your sofa and an e-mail shows up out of the blue, with an awesome company asking you if you're available.

By the way, take a look at how ridiculously effective my understanding of Google is. Several paragraphs ago, I was joking about Ryan Davis having this aura of toughness, so I thought it would be funny to include a picture of him, if I could find one where he looked scary at all. I decided against it - it seemed a bit libellous - but I did go so far as to search for it, and my own picture appears on the first page of search results.


not actually Ryan Davis

This is like when you use Google as a spelling corrector. "Oh, you're looking for Ryan Davis? Well, maybe you mean Giles Bowkett!" Or it's like if you search for Target in Google and ads for Wal-Mart show up as well - except Wal-Mart pays for that, and I got this for free. The crazy part is, it might even be fair to say that if Ryan's code was Target, then mine would be Wal-Mart. False modesty aside, it doesn't hurt my consulting business if Google, one of the main sources people go to for information, puts us in the same category.

Google-fu is great for business. One time I got a contract by resorting to the old-school, sending out resumes thing; the hiring manager got my resume in his e-mail while he was reading my blog. Do you think that was a tough interview? Pretty much the hardest question I had to answer was whether I preferred Chinese food or Thai.

Again, this ridiculous effectiveness is not some magical mojo I have. It's a product of the clear, coherent understanding which I share with you in this video. We start with the algorithm and move into the strategy. That's how it went for me, too. In 2005 I idolized Google's AI work, and I read every Google white paper I could get my hands on. Later I grew disillusioned, but by that time I knew PageRank inside-out and had begun blogging. I didn't set out to dominate search results or anything like that; I just understood PageRank, so I never did anything that went against how PageRank works. Most programmers don't bother to do this before they blog - I only did it by coincidence - but now when you ask Google about Ryan Davis, it thinks you mean me.

It's easy to make Google your lapdog if you understand how it works. Take a look at my ridiculous effectiveness, not because it makes me awesome, but because you're about to acquire that same ridiculous effectiveness yourself. If you use it to create assets and get them into people's hands, your career will transform.


this series (from IDW) is terrific, btw

Now, there are three ways you can acquire this ridiculous effectiveness.

The first and best way is to hire me as a private coach. I do coaching both for individuals and for startups. However, this method is only for the committed, and there are a limited number of spaces. We do an hour per month via Skype. You give me $149 per month.



The second way is to join my new video coaching program. The cost is $23/month. It goes for a total of 9 videos. New videos become available biweekly. This is not yet launched, and won't launch until after MountainWest RubyConf - possibly not even until April or May - so obviously you can't join it yet. If you want to hear about it when it happens, sign up here.

The third way is to buy my new movie. You may have heard of it. It's an awesome movie with an awesome title. The title is:

How To Get A Kickass Job, Making Six Figures Working From Home With The Stars Of Your Community, Even If You Just Got So Fired That The Cops Hauled You Out Of The Building In Handcuffs

This movie costs $97, which means that if it adds just $5 to your hourly rate, the information will have paid for itself halfway through your first week on the job (or at the contract, or with the client, however you prefer to work) at the new rate.

Buy Now

DO NOT BUY THIS MOVIE IF YOU HAVE EPILEPSY. Probably nothing will happen, but theoretically something could, and I don't want to risk it.

Also, just to be clear, this movie looks exactly like this:













That's what it looks like. There are no blue-skinned cat people, no space Marines mecha, no giant dragons, and it doesn't go for three hours either - just an awesome 90-minute presentation with 553 slides which covers everything you need to know to turn yourself into a so-called "rock star" programmer.


not a screenshot from my movie

You should seriously buy this movie. At the start of 2005 I was making only $25 per hour. By the start of 2009 I was making $90 per hour - and if I moved to San Francisco, I could make way more than that. I more than tripled my rate; I nearly quadrupled it. How much would you spend to quadruple your income?

Of course, I have to balance these hard-sell tactics with some plain speaking. This was not a straight meteoric rise, and the sad truth is I'm not just teaching you what I learned from success, but what I've learned from failure as well. I've done a few small gigs for tiny pay, and again, if you live in San Francisco, you probably can't believe I even get out of bed for less than $125 per hour. Also, obviously, I can't guarantee you'll have the same experience, and in a legal sense, this information is provided for entertainment purposes only.

Last but not least, the FTC requires me to tell you the typical results you'll have when you implement my advice. It's very difficult to comply with the letter of the law there, since A) I'm just launching this now, so no data exists, and B) it may in fact be impossible to measure the degree to which somebody actually uses the information. However, it's very easy to comply with the spirit of the law: let me just tell you, I'm telling you how to do it, and the actual doing it falls on your shoulders. Your mileage will vary, and the degree of variance is impossible to determine. However, by the same token, while it may be difficult to quantify the improvement, the typical programmer who puts this plan into action definitely sees more money, better employers, and better co-workers as a result.

Buy Now







Buy Now

Update: a buyer reviews the video on his blog, asking the question Is Giles Bowkett Full Of Shit Or An Utter Genius?

Update: I've also created a new video on programmer resumes. Bona fide quote:

The resume and cover letter advice you gave me landed me a job using technology I care about in a place with a great open source community, making 30% more money, and an extra week of vacation.

That's a quote from Grant Austin, a customer who was in my coaching program. I took everything I taught him in the coaching program and turned it into my resumes video.

Josh Black watched the resumes video, and said:

Ok so I just finished watching your video and reading your pdf on cover letters.

I learned a lot, laughed a lot...The pdf on cover letters was also great. Cover letters have always been a complete mystery to me, and it was nice to have a simple formula to follow, again with an example...

All in all, the whole package was fantastic. It's easily worth $97.


Buy the resumes video too - it's $97.

Buy Now: Resumés Video

Or, if you want both, you can get both in a package deal for only $149.

Buy Now: Resumés & Handcuffs Bundle