That same year, I was learning to code.
But that same year: I failed Computer Science. Failed hard, like a big fat: F.
My confidence was at an all time low. And I quit.
Then I read Hackers & Painters and thought, “Oh this guy totally gets it. It’s not that I’m doing it wrong… it’s that my college is teaching this the wrong way”. I realized that as a developer I didn’t need to know EVERYTHING! Instead, I could be creative and learn from the process! It was liberating.
Hackers & Painters gave me permission to rethink my job as a developer. I wasn’t a scientist, but an artist.
A decade later… here I am teaching programming. And left wondering:
- Has computer science changed in 10 years?
- Should everyone learn to code?
- Has Paul Graham’s prophecy for less elitism in coding come true?
I went to the source to find out. Here’s my interview with Paul Graham….
It’s been 10 years since you wrote the essay “Hackers and Painters”. In the essay you imagine a future where computer science could become less of an elitist thing. And that it would be broken up into many niches. In your opinion, are we there yet?
PG: That does seem to be happening… for sure. A lot of what used to be computer science research is now just happening on GitHub amongst people who don’t think that what they’re doing is computer science research.
So yeah, it’s true.
There’s niches all up and down the stack: there’s front and and back end hackers, and operating system hackers, right down to hardware hackers.
Programming in the last 10 years is much more system administration. It’s largely installing things and piecing them together. You used to have libraries you’d have to call and stuff like that, but now you build your app by piecing together these big chunks of open source code that other people have written.
And that used to be the thing that sys admins did, they installed things and programmers wrote things. But now programmers are good at installing things. And they’re proud of it, at how they can tune them properly.
If I have a startup, but can’t code… what should I be doing?
PG: You have to do sales. There’s two things startups need to do early on: you need to build stuff, and talk to users. So if you can’t build stuff, you have to talk to users.
And what you want to do [by talking to users] is get them to use your stuff. So whether you’re good at sales or not, if you can’t program, then sales is what you’re doing.
Can a non-technical founder hire developers?
PG: It depends. There are now startups working on things that aren’t very technical at all. For example: retail businesses where the technology used is fairly generic. So yes, to some extent you can be a non-technical founder and somehow get programmers to do that stuff for you. But it’s very hard to hire programmers if you’re not a programmer yourself, because you can’t judge them.
We have had non-technical founders who have run into EXACTLY this problem: they are worried if their programmer is any good and they can’t tell.
So… how can you tell if a developer is good?
PG: There’s not really any good solution. Of all the startups with solo non-technical founders that Y Combinator has funded… it’s possible that none of them are doing very well. It’s hard, very hard.
You would have to have a friend who’s a really good programmer. But then, how would you know if your friend was a really good programmer? (laughs)
If you had this friend he could jump start the process to ensure that the first couple of people are good. Then they can hire the rest. You could even get JUST ONE good person. But how do you get that one good person?
If you don’t have expertise in hiring programmers then you need to get someone who does.
At One Month Rails we believe that knowing a few months of programming will help you communicate better with developers. What do you think? Does knowing a few bits of programming make you more proficient at running a digital company?
PG: I think it would help! I think it would help a lot.
In fact, if someone wanted to start a startup and had a choice of going to business school or learning to program I’d say, “learn programming”. Because what’s business school going to teach you? Just how to be a member of the officer corps of a large company, to manage people, to do spreadsheets… but that’s not what you need to do at a startup anyway.
Do you have a language of choice for companies coming into Y Combinator?
PG: I would be worried if someone was writing their stuff in COBOL! I would ask why. (laughs)
Other than that not really. I mean, we have had startups writing their code in PHP – and that worries me a little bit. But not as much as other things worry me.
Would you hire someone who was a really good developer, but didn’t finish college?
PG: Oh yeah! ‘Would I hire Bill Gates?’, yeah. Although Bill Gates might be a little bit difficult to have as an employee. But my god of course.
It’s good for you to go to college. But it’s certainly not necessary for having a startup.
Going to college expands your vision of the world: you can learn about all kind of other things that you might not have learned about. So it’s good to just make yourself smarter in a very general way.
Although, I really can’t tell the difference between people that left college half-way through, and people that have PHDs.
Would you say being a developer has become more plug and play?
PG: Well people wouldn’t do it if it wasn’t easier. I don’t think that this is some sign that programmers have fallen from grace. It’s just some natural progression… it’s weird for me, but only weird in the way that the future always turns out to be weird.
We hear many of our students [at One Month Rails] say “I can make an MVP with Rails, but I have no intention of becoming a computer scientist.” It’s almost like they’re putting themselves down for not adhering to this somewhat elitist definition.
PG: Well what’s a computer scientist? Someone who can program and who also took a class in Automata Theory. (he laughs)
In the essay you mentioned that “hacking is not as cool as painting”. Do you still feel that way?
PG: Hacking is getting a lot cooler now. But I think it is probably better for picking people up at parties if you can say you’re a painter.
Would that be a better term to use for our students? It’s certainly much better than “developer” or “computer scientist”, no?
PG: Hacking is certainly cool. Even the White House uses the word “hacking” to describe stuff. And not just to describe doing stuff to software, but as a general purpose verb.
Hacking in the narrow and broader sense is all the rage at the moment.