Jeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7
KZkYSSE8HHI • 2018-11-29
Transcript preview
Open
Kind: captions
Language: en
the following is a conversation with
Jeff Atwood he is the co-founder of
Stack Overflow
Stack Exchange websites that are visited
by millions of people every single day
much like with Wikipedia it is difficult
to understate the impact on global
knowledge and productivity that these
networks of sites have created Jeff is
also the author of the famed blog coding
horror and the founder of discourse an
open-source software project that seeks
to improve the quality of our online
community discussions this conversation
is part of the MIT course on artificial
general intelligence and the artificial
intelligence podcast if you enjoy it
subscribe on youtube itunes or your
podcast provider of choice or simply
connect with me on twitter at Lex
Friedman spelled Fri D and now here's my
conversation with Jeff Atwood having
co-created and managed for a few years
the world's largest community of
programmers in Stack Overflow ten years
ago what do you think motivates most
programmers is it fame fortune glory
process of programming itself or is it
the sense of belonging to a community
it's puzzles really I think it's this
idea of working on puzzles independently
of other people and just solving a
problem sort of like on your own almost
although you know nobody really works
alone and programming anymore but I will
say there's that there's an aspect of
sort of hiding yourself away and just
sort of beating on a problem until you
solve it like brute force basically to
me it's what a lot of programming is is
like the computer so fast right you can
do things that would take forever for a
human but you just do them like so many
times and so often that you get the
answer right you're saying just the pure
act of tinkering with the code yes is is
the thing that drives most probably the
joy the struggle balance within the joy
of overcoming the the brute-force
process of pain and suffering that
eventually leads to something that
actually works well data is fun too like
there's this thing called the the
shuffling problem like the naive shuffle
that most programmers right has a huge
flaw and there's a lot of articles
online about this because it can be
really bad if you're like a casino and
you have an unsophisticated programmer
writing your shuffle algorithm there's
surprising ways to get this wrong but
the neat thing is the way to figure that
out is just to run your shuffle a bunch
of times and see like how many
orientations of cards you get you should
get an equal distribution of all the
cards and with the naive method of
shuffling if you just look at the data
if you just brute force and say okay I
don't know what's gonna happen
you just write a program that does it a
billion times and then see what the
buckets look like of the data and the
Monty Hall problem is another example of
that where you have three doors and
somebody gives you information about
another door so the correct answer is
you should always switch and the Monty
Hall problem which is not intuitive and
people it freaks people out all the time
right but you can solve it with data if
you write a program that does the Monty
Hall you know game and then never
switches and always switches just
compare you would immediately see that
you don't have to be smart right you
know to figure out the answer
algorithmically you can just brute force
it out with data and say well I know the
answer is this because I ran the program
a billion times and these are the data
buckets that I got from it right so
empirically find it but what's the joy
of that what so for you for you
personally outside of family what
motivates you in this process
yes well to be honest I don't really
write a lot of code anymore like what I
do at discourse is like manager II stuff
which I always kind of despised right
like as a programmer you think of
managers as people who don't really do
anything themselves but the weird thing
about code is like you realize that like
language is code like the ability to
direct other people lets you get more
stuff than you've done then you could by
yourself anyway you should write
languages code languages community
communication yeah those are humans yes
you can think of it as a systemic so
what what is it like to be what makes
before we get into program it what makes
a good manager what makes a good leader
well I think a leader it's all about
leading by example first of all like
sort of doing and being the things that
you want to be now this can be kind of
exhausting particular you have kids
because you realize that your kids are
watching you like all the time like even
in ways that you've stopped seeing
yourself like the hardest person to see
on the planet is really yourself right
it's funnier to see other people and and
and make judgments about them but
yourself like your
for biased you don't actually see
yourself the way other people see you
often you're very very hard on yourself
in a way that other people really aren't
going to be so you know that's one of
the insights is you know you've got to
be really diligent about thinking like
am i behaving in a way that represents
how I want other people to behave right
like leading through example there's a
lot of examples of leaders that really
mess this up right like they make
decisions that are like wow that's why
would you know it's just it's it's it's
a bad example for other people so I
think leading by example is one the
other one I believe it is working really
hard now I don't mean like working
exhaustively but like showing a real
passion for the problem like you know
not necessarily your solution the
problem but the problem itself is just
one that you really believe in like with
discourse for example the problem that
we're looking at which is my current
project is how do you get people in
groups to communicate in a way that
doesn't like break down into the howling
of wolves right like how do you deal
with trolling not like technical
problems of how do I get people to post
paragraphs how do I get people to use
bold how to get people to use complete
sentences although those are problems as
well but like how do I get people to get
along with each other
right like and then solve whatever
problem it is they set up to solver you
know reach some consensus on discussion
or just like not hurt each other even
right like maybe it's a discussion
doesn't really matter but are people
like yelling at each other right and why
right like that's not the purpose of
this kind of communication so I would
say you know leadership is about you
know setting an example you know doing
the things that represent what you want
to be and making sure that you're
actually doing those things and there's
a trick to that too because the things
you don't do also say a lot about what
you are yeah so let's pause on that one
so those two things are fascinating so
how do you have as a leader as that
self-awareness so you just said it's
really hard to be self-aware so for you
personally or maybe for other leaders
you've seen or look up to how do you
know the both that the things you're
doing are the wrong things to be doing
the way you speak to others the way you
behave and the things you're not doing
how do you how do you get that service
there's two aspects that one is like
processing feedback that you're getting
so how you get feedback well right sorry
are you getting feedback right like so
one way we do it for example a discourse
we have three co-founders and we
periodically talk about decisions before
we make them so it's not like one person
can make a mistake or like
that's you know there can be
misunderstanding things like this so
it's part of like group consensus of
leadership is like it's good to have I
think
systems where there's one leader and
that leader has the rule of absolute law
are just really dangerous and my
experience for communities for example
like a few of communities run by one
person that one person makes all the
decisions that person's gonna have a bad
day something could happen to that
person you know something you know
there's a lot of variables so like at
first when you think about leadership
haven't have multiple people doing
leadership and have them talk amongst
each other so giving each other feedback
about the decisions that they're making
and then when you do get feedback I
think there's that little voice in your
head right like or your gut or wherever
you want to put it in your putti I think
that voice is really important like I
think most people who have any kind of
moral compass or like want to do most
people want to do the right thing I do
believe that I mean there might be a
handful of sociopaths out there that
don't but most people they want other
people to think of them as a good person
and why wouldn't you right like do you
want people to despise you I mean that's
just weird right so you have that little
voice that sort of the angel and devil
on your shoulder sort of talking to you
about like what you're doing how you're
doing how does it make you feel to make
these decisions right and I think having
some attunement to that voice is
important but you said that voice also
for I think this is a programmer
situation to what sometimes the devil on
the shoulder is a little a little too
loud so you a little too self-critical
for a lot of developers and especially
when you have introverted personality
how do you struggle with the
self-criticism other criticism others so
one of the things of leadership is to do
something that's not potentially
unpopular or what people doubt you and
you still go through with the decision
so what's that balance like I think you
have to walk people through your
decision-making right like if if this is
where blogging is really important
communication is so important again code
language is just another kind of code is
like here is the program by which I
arrived at the conclusion that I'm gonna
reach right it's one thing to say like
this is decisions final
deal with it right that's not usually
satisfying people but if you say look
you know we've been thinking this
problem for a while here's some stuff
that's happened here's what we think is
right here's our goals here's one
achieve and we've looked at these
options and we think this of available
options is the best option people be
like oh okay
alright maybe I don't totally agree with
you but I can kind of see where you're
coming from and like
see it's not just arbitrary decision
delivered from a cloud of flames in the
sky right it's like a human trying to
reach some kind of consensus about you
know goals and their goals might be
different than yours that's completely
legit right but if you're making that
clear it's like oh well the reason we
don't agree is because we have totally
different goals right like how could we
agree it's not that you're a bad person
it's that we have radically different
goals in mind when we started looking
this problem and the other one you said
is passion so or hard work sorry well
those are tied together to me out in my
mind say Hardware compassionate like for
me like I just really love the problem
discourse is sending out to solve
because in a way it's like there's a
there's a vision of the world where it
all devolves into Facebook basically
owning everything and every aspect of
human communication right and this has
always been kind of a scary world for me
um first cuz I don't I think Facebook is
really good at execution I gotta
compliment them they're very competent
in terms of what they're doing but
Facebook has not much of a moral compass
in terms of Facebook cares about
Facebook really they don't really care
about you and your problems what they
care about is how big they can make
Facebook right is that you're talking
about the company or just a mechanism
how Facebook works kind of both really
right like and the idea with discourse
the reason I'm so passionate about it is
because I believe every community should
have the right to own themselves right
like they should have their own software
that they can run that belongs to them
that's their space where they can set
the rules and if they don't like it they
can move to different hosting or you
know whatever they need they need to
have it can happen but like this this
idea of a company town we're all human
communication is implicitly owned by
whatsapp Instagram and Facebook and its
really disturbing too because Facebook
is really smart like I said they're
great at execution buying and what's
happened buying Instagram were
incredibly smart decisions and they also
do this thing on if you know but they
have this VPN software that they give
away for free on smartphones and it
indirectly feeds all the the data about
the traffic back to Facebook so they can
see what's actually getting popular
through the VPNs right they have low
level access to the network data because
users have let them have that so ok
let's let's take a small pause here
first of all discourse can you talk
about can you lay out the land of all
the different ways you can have
community so there's Stack Overflow that
you've built
there's discourse yeah so Stack Overflow
is kind of like a wiki Wikipedia you
talk
and it's a very specific scalpel very
focused so what is the purpose of
discourse and maybe contrast that with
Facebook first of all say what is this
course yeah start from the beginning
well let me start with the very being so
Stack Overflow is very structured wiki
style QA for programmers right and that
was the problem we first worked on it
when we started we thought it was
discussions because we looked at like
programming forums and other things but
we quickly realized we were doing QA
which is a very narrow subset of human
communication sizes so when you start
Stack Overflow you thought you didn't
even know the QA you know it would be
well we didn't know we did we had an
idea of like ok these are things that we
see working online we had a goal right
our goal was there was this site experts
exchange with a very unfortunate thank
you for killing that site yeah I know
right like a lot of people don't
remember it anymore which is great like
that's the measure of success when
people don't remember the thing that you
were trying to replace then you've
totally won so it was a place to get
answers to programming questions but it
wasn't clear if it was like focused Q&A
if it was a discussion there were plenty
of programming forums so we weren't
really sure we were like ok we'll take
aspects of Digg and reddit like voting
we're very important reordering answers
based on votes wiki style stuff of like
being able to edit post not just your
posts but other people's post to make
them better and keep them more
up-to-date ownership of blogging of like
ok this is me I'm saying this is my
voice you know this is the stuff that I
know and you know you give your
reputation accrues to you and it's pure
recognition so you asked earlier like
what motivates programmers I think peer
recognition motivates them a lot that
was one of the key insights of Stack
Overflow was like recognition from your
peers is why things get done initially
moneyness well your boss but like your
peers saying wow this person really
knows their stuff has a lot of value so
the reputation system came from that so
we were sort of frankensteining a bunch
of stuff together in Stack Overflow of
like stuff we had seen working and we
knew worked and that became Stack
Overflow and over time we realized it
wasn't really discussion it was very
focused questions and answers there
wasn't a lot of room on the page for let
me talk about this tangential thing it
was more like ok he's an answering
question is it clarifying the question
or could it be an alternative answer to
the same question because there's
usually more than one way to do it in
program there's
say five to ten ways and one of the
patterns we got into early on
stackoverflow was there are questions
where there would be like hundreds of
answers more like Wow
how can there be a programming question
with 500 200 500 answers and we looked
at those we realized those were not
really questions in the traditional
sense they were discussions it was stuff
that we allowed early on that we
eventually decided wasn't allowed such
as what's your favorite programming food
you know what's the funniest programming
cartoon you've seen and we had to sort
of backfill oh into rules about like why
isn't this allowed such as is this a
real problem you're facing like nobody
goes to work and says wow I can't work
because I don't know what the funniest
programming cartoon is so sorry can't
compile this code now right it's not a
real problem you're facing in your job
that was run rule and ii like what can
you really learn from that it's like
what i call accidental learning or
reddit style learning where you just
acknowledge browse some things
oh wow you know did you know tree frogs
only live three years I mean I just made
that up I don't know that's true but uh
I didn't really set out to learn that I
don't need to know that right it's an
accidental learning it was more
intentional learning we were like okay I
have a problem and I want to learn about
stuff around this problem having right
and it could be theory could be compiler
theory it could be other stuff but I'm
having a compiler problem hence I need
to know the compiler theory that aspect
of it that gives me the the gets me to
my answer right so kind of a directed
learning so we had to backfill all these
rules as we sort of figured out what the
heck it was we were doing and the system
came very strict over time and a lot of
people still complain about that and I
wrote my latest blog entry what the
Stack Overflow want to be I wanted to be
when it grows out celebrating the
10-year anniversary yeah yeah so ten
years and it that system is trended
towards strictness there's a variety of
reasons for this one is people don't
like to see other people get reputation
for stuff as they view they view as
frivolous which I can actually
understand because if you saw a program
or got like five hundred up votes for
funniest programming cartoon or funniest
comment they had seen in code it's like
well why do they have that reputation is
because they wrote the joke probably not
I mean if they did maybe or the cartoon
right they're getting a bunch of
reputation based on someone else's work
that's not even like programming it's
just a joke right it's a related to
birth so you begin to resent that like
well that's not fair and it isn't at
some level they're correct I mean I
empathize because like it's not correct
you get reputation for that versus
here's a really gnarly
regular expression problem and here's a
really you know clever insightful you
know detailed answer laying out oh
here's why you're seeing the behavior
that you're seeing here let me teach you
some things about how to avoid that in
the future that's that's great like
that's gold right you want people to
grab a petition for that not so much for
wow look at this funny thing I saw
alright great so there's this very
specific Q&A format and then take me
through the journey towards this course
in Facebook and Twitter so you start at
the beginning that Stack Overflow
evolved to have a purpose so where does
this course this passion you have for
creating community for discussion what
is that when was that born and well part
of it is based on the realization the
Stack Overflow is only good for very
specific subjects where they're sort of
it's it's based on data facts and
science where answers can be kind of
verified to be true another form of that
is there's the book of knowledge like
the tome of knowledge that defines like
whatever it is you can refer to that
book and I'll give you the answer there
has to be it only works on subjects
where there's like semi clear answers to
things that can be verified in some form
now again there's always more than one
way to do it there's complete
flexibility and system around that but
where it falls down is stuff like poker
and Lego like we had if you go to Stack
Exchange calm we have an engine that
tries to launch different Q&A topics
right and people can propose Q&A topics
sample questions and and if he gets
enough support within the network we
launch that Q&A site so someone's we
launched where poker and Lego and they
did horribly right because I mean there
might still be there lingering on in
some form but it was an experiment this
is like a test right and some subjects
work super well in the stack engine and
some don't
but the reason Lego and Poker don't work
is because they're so social really it's
not about you know what's the rule here
in poker it's like well you know what
kind of cigars do we like to smoke while
playing poker or you know what's what's
a cool set of cards to use when playing
poker or you know what some strategies
like say I have this hand come up with
some strategies I could use it's more of
a discussion around like what's
happening like with Lego
you know same thing like here's this
cool Lego set I found look how awesome
this isn't like yeah that's freaking
awesome right it's not question right
there's all these social components
discussions that don't fit at all like
we literally have to just allow those in
Stack Overflow kids it's not about being
social it's about
problems that you're facing in your work
that you need concrete answers for right
like you have a real demonstrated
problem that's sort of blocking you in
something nobody's blocked by you know
what should I do when I have a straight
flush right like blocking problem in the
world it's just an opportunity to hang
out and discuss so this course was a way
to address that and say look you know
discussion forum software ahead was very
very bad and when I came out of Stack
Overflow until late or early 20 2013
2012 it was still very very bad I've
expected it improved and in the four
years since I last looked but it had not
improved at all and I was like well
that's kind of terrible because I love
these communities of people talking
about things that they love you know
that there's just communities of
interest right and there's no good
software for them like startups would
come to me and say hey Jeff I wanna you
know I have this startup here's my idea
and the first thing I would say them is
like well first why are you asking me
like I don't really know your field
right let it's necessarily like why
aren't you asking like the community
like the people that are interested in
this problem the people that are using
your product why aren't you talking to
them and then they say Oh a great idea
like how do I do that and then that's
when I started playing sad trombone
because I realized all the software
involving talking to your users
customers audience patrons whatever it
is it was all really bad you know I was
like stuff that I would be embarrassed
to recommend to other people and yet
that's where I felt they could get the
biggest and strongest most effective
input for what they should be doing with
their product right it's from their
users from their community right that's
what we did on Stack Overflow
so what we're talking about with forms
the what is it the dark matter of the
Internet it's still I don't know if it's
still but for a longest time it has some
of the most passionate and fascinating
discussions and what's the usual
structure there's usually what it's a
it's linear so it's sequential it's
you're posting one after the other and
there's pagination so it's every there's
a 10th post and you go to the next page
and that format still is used by like
I'm we're doing a lot of research with
Tesla of vehicles and there's Tesla
Motors Club forum which is extremely
really wanted to run that actually they
pinged us about I don't think we got
but I really would like to gotten that
one but they've started before even 2012
I believe I mean they've been running
for a long time it's still an extremely
rich source of information so what
what's broken about that system and how
are you trying to fix it I think there's
a lot of power in in connecting people
that love the same stuff around that
specific topic meaning Facebook's idea
of connection is just any human that's
related to another human right like like
through friendship or you know any other
reason
Facebook's idea of the world is sort of
the status update right like a friend of
yours did something ate at a restaurant
right
whereas discussion forums were
additionally around the interest graph
like I love electric cars specifically I
love Tesla right like I love the way
they approach the the problem I love the
style of the founder I just love the the
design ethic there's a lot to like about
Tesla if you saw the oatmeal he did a
whole love comic to Tesla and it was
actually kind of cool because I learned
some stuff he was some how great Tesla
cars were specifically like how they
were built differently and he went into
a lot of great detail that was really
interesting to me that oatmeal post if
you read it is the genesis of pretty
much all interest communities I just
really love this stuff's like for me
devilish yo-yos right like I'm into the
yo-yo communities and there's these
interest communities are just really
fascinating to me and I feel more
connected to the yo-yo communities than
I do to you know friends that I don't
see that often right like to me that the
powerful thing is the interest graph and
Facebook kind of dabbles in the interest
graph I mean they have groups you can
sign up for groups and stuff but it's
really about the relationship graph like
I'm this is my coworker this is my
relative this is my friend but not so
much about the interest so I think
that's the the linchpin of which forums
and communities are built on that I
personally love like I I like I said
leadership is about passion right and
being passionate about stuff is is a
really valid way to look at the world
and I think it's a way a lot of stuff in
the world gets done like I once said
someone described me as he's like Jeff
you're a guy who you just get super
passionate about a few things at a time
and you just go super team from those
things and I was like oh that's kind of
right that's kind of what I do I'll get
into something and just be super into
that for a couple years or whatever I
just learn all I can about it and go
super deep in it and that's how I enjoy
experiencing the world right
like not being shallow on a bunch of
things but being really deep on a few
things that I'm interested in so forums
kind of unlocked that right and you know
you don't want a world where everything
belongs to Facebook at least I don't I
want a world where communities can kind
of own themselves set their own norms
set their own rules control the
experience because commit community is
also about ownership right like if if
you're meeting at the Barnes & Noble
every Thursday at Barnes & Noble says
get out of here you guys don't buy
enough books well you know you're kind
of hose right Barnes and Noble owns you
right like you can't but if you have
your own meeting space you know your own
Clubhouse you can set your own rules
decide what you want to talk about there
and just really generate a lot better
information than you could like hanging
out at Barnes & Noble every Thursday at
3:00 p.m. right so that's kind of the
vision of discourse is a place where
it's it's fully open source you can take
the software you can saw it anywhere and
you know you and a group of people can
go deep on whatever it is that you're
into and it this works for startups
right startups are a group of people who
go super deep on a specific problem
right and they want to talk to the
comedian's like well install this course
right that's what we do at this course
that's what I did a stack overflow I
spent a lot of time on meta stack
overflow which is our internal well
public community feedback site and just
experiencing what the users were
experiencing right because they're the
ones doing all the work in the system
and they had a lot of interesting
feedback and there's that 90/10 rule of
like 90% of the feedback you get is not
really actionable for a variety reasons
it might be bad feedback it might be
crazy feedback it might be feedback you
just can't act on right now but there's
10% of it that's like gold it's like
literally gold and diamonds where it's
like feedback of really good
improvements to your core product that
are not super hard to get to and
actually make a lot of sense and my
favorite is about 5% of those stuff I
didn't even see coming it's like oh my
god I never even thought of that but
that's a brilliant idea
right and I can point to so many
features of Stack Overflow that we drive
from metastatic overflow feedback and
meta discourse right same exact
principle at discourse you know we're
getting ideas from the comedian's like
oh my god I never thought of that but
that's fantastic right like I love that
relationship with the community from
having built these communities what have
you what have you learn about what's the
process of getting a critical mass of
members in a community is it luck skill
timing persistence what is is it the
tools like discourse that empower that
community what what's the key aspect of
starting
one guy a gal and then building it to
210 and 100 and a thousand so on I think
we're starting with an end of one I mean
I think it's persistence and and also
you have to be interesting like somebody
I really admire once that's something
that I always liked about blogging he's
like here's how you blog you have to
have something interesting to say and
have an interesting way of saying it
right yeah and then do that for like 10
years so that's the genesis is like you
have to have sort of something
interesting to say that's not exactly
what everyone else is saying and an
interesting way of saying which is
another one same kind of entertaining
way of saying it and then as far as
growing it it's like ritual you know
like you have to like say you're
starting a blog you have to say look I'm
gonna blog every week three times a week
and you have to stick to that schedule
right because until you do that for like
several years you're never gonna get
anywhere like it just takes years to get
to where you need to get to and part of
that is having the discipline to stick
with the schedule and it helps you get
if it's something you're passionate
about this won't feel like work like I
love this I could talk about this all
day every day right you just have to do
in a way that's interesting to other
people and then as you're growing the
community that pattern of participation
within the community of like generating
these artifacts and inviting other
people to help you like collaborate on
these artifacts like even in case of
blogging like I felt in the early days
of my blog which I started 2004 which is
really the genesis of Stack Overflow if
you look at all my blog it leads up to
Stack Overflow which was I have all this
energy in my blog but I don't like
40,000 people were subscribing to me and
I was like I want to do something and
then then I met Joel and said hey Joel I
want to do something take this ball of
energy for my blog and do something and
all the people reading my blog saw
that's oh cool you're involving us
you're saying look you're part of this
community let's build this thing
together like they pick the name like we
voted on the name for Stack Overflow on
my blog like we came and naming is super
hard first why the hardest problem
computer science is coming with a good
name for stuff right yeah but there you
can go back to my log there's the poll
where we voted and Stack Overflow became
the name of the site and all the early
beta users are stuck over we're audience
of my blog plus Joel's blog right so we
started from like if you look at the
Genesis okay I was just a programmer who
said hey I love programming but I have
no outlet to talk about it so I'm just
gonna blog about it because I don't have
enough people to work to talk to about
it because at the time I worked a place
where you know programming wasn't the
core
output of the company was a
pharmaceutical company and I just love
this stuff you know to an absurd degree
so I was like I'll just blog about it
and then I'll find an audience and
eventually found an audience eventually
I found Joel and eventually built Stack
Overflow from that one core of activity
right but it was that repetition of
feeding back in feedback from my blog
comments feedback from Joel feedback
from them the early Stack Overflow
community when people see that you're
doing that they will follow along with
you right they say look cool you're here
in good faith you're actually you know
not listening to everything because I'm
impossible that's impossible
but you're actually you know waiting our
feedback and what you're doing because
I'm and why wouldn't I because who does
all the work on Stack Overflow me Joel
no it's the other programmers that are
doing all the work so you gotta have
some respect for that and then you know
discipline around look you know we're
trying to do a very specific thing here
on Stack Overflow we're not trying to
solve all the world's problems we're
trying to solve this very specific QA
problem in a very specific way not
because we're jerks about it but because
these strict set of rules help us get
really good results right and
programmers that's an easy sell for the
most part because programmers are used
to dealing with ridiculous systems of
rules like constantly that's basically
their job so they're they're very oh
yeah super strict system of rules that
lets me get on what that's programming
right that's what Stack Overflow is so
so you're making it sound easy but in
2004 let's go back there in 2004 you
started the blog I'm quoting horror was
it called that at the beginning at the
very beginning was one of the smart
things I did it's from a book by Steve
McConnell code complete which is where
my favorite programming but still
probably my number one programming book
for anyone to read one of the smart
things I did back then I don't always do
smart things when I start stuff
I contacted Stephen said hey I really
like this it was a sidebar illustration
indicating danger in code right coding
horror was like watch out and I love
that illustration cuz it spoke to me
because I saw that illustration go oh my
god that's me like I'm always my own
worst enemy like that and a key insight
and programming is every time you write
something think how am I gonna screw
myself because you will constantly right
so that that icon was like oh yeah I
need to constantly hold that mirror up
and look and say look you're very
fallible you're gonna screw this up like
how can you build this in such a way
that you're not gonna screw it up later
like how can you
get that discipline around making sure
at every step I'm thinking through all
the things that I could do wrong or that
other people could do wrong because that
is actually how you get to be a better
programmer a lot of times right so that
sidebar illustration I loved it so much
and I wrote Steve before I started my
belonging say hey can I have permission
to use this cuz I just really likes
illustration and Steve was kind enough
to give me a portion to do that and just
continues to give me permission so yeah
really that's awesome but in 2004 you
started this blog you know you look at
it Stephen King this book on writing or
Steven Pressfield the war of art book I
mean it seems like writers suffer I mean
it's a hard process of writing write is
there's gonna be suffering I mean I
won't kid you like well the work is
suffering right like doing the work like
even when you're every week you're like
okay that blog post wasn't very good or
you know people didn't like it or people
write said disparaging things about it
you have to like have the attitudes like
you know no matter what happens I want
to do this for me right it's not about
you it's about me I mean in the end it
is about everyone because this is how
good work gets out into the world but
you have to be pretty strict about
saying like you know I'm selfish in the
sense that I have to do this for me you
know you mentioned Stephen King like his
book on writing but like one of things I
do for example when writing is like I
read it out loud one of the best pieces
of advice for writing anything is read
it out loud like multiple times and make
it sound like you're talking because
that is the goal of good writing it
should sound like you said it with with
slightly better phrasing because you
have two more time to think about your
saying but like it should sound natural
when you say it and I think that's
probably the single best writing advice
and give anyone it's just just read it
over and over outloud make sure it
sounds like something you would normally
say and it sounds good and what's your
process of writing so there's usually a
pretty good idea behind the blog post so
ideas right so I think you gotta have
the concept that there's so many
interesting things in the world like I
mean my god the world is amazing right
like it's you could never write about
everything that's going on because it's
so incredible but if you can't come up
with like let's say one interesting
thing per day to talk about then you're
not trying hard enough because the world
is full of just super interesting stuff
and one great way to like mine stuff is
go back to old books because they bring
old stuff that's still super relevant
and I did that a lot because I was like
reading classic program books and a lot
of the early blockbuster like oh I was
reading this program but can they
brought this really cool concept and I
want talk about some more and you get
the I mean you're not claiming credit
for the idea but it gives you something
interesting to talk about that's kind of
evergreen right like you don't have to
go what should I talk about so just go
dig up some old classic programming
books and find something that oh wow
that's interesting or how does that
apply today or what about X&Y or compare
these two concepts so pull a couple of
sentences from that book and then sort
of play off of it almost reader disagree
that so in 2007 you wrote that you were
offered a significant amount of money to
sell the blog you chose not to what were
all the elements you were thinking about
because I'd like to take you back it
seems like there's a lot of non-linear
decisions you made through life that's
so what was that decision like right so
i one of the things I love is the choose
your own adventure books which I loved
as a kid and I feel like the early
programmer books cuz they're they're all
about if-then statements right if this
then this and they're also very very
unforgiving like there's all these sites
that map the the classic teacher and
venture books and how many how comes are
bad there's a lot of bad outcomes so
part of the game is like oh I got a bow
come go back one step go back on further
steps like how did I get here right like
it's a sequence of decisions and this is
true of life right like every decision
is a sequence right individually any
individual decision is not really right
or wrong but they lead you down a path
right so I do think there's some truth
to that so this particular decision the
blog II got fairly popular there's a lot
of RSS readers that I discovered and
this guy contacted me out of the blue
from this like bug tracking companies
like I really want to buy your blog for
like I think it was around it was a
hundred thousand dollars when I'm in
like eighty thousand but it was it was a
lot right like and that's you know at
the time like I would have a year's
worth of salary all at once so I'd
really think about like well you know
and I remember talking to people the
times like wow that's a lot of money but
then I'm like I really like my blog
right like do I want to sell my blog
because it wouldn't really belong to me
anymore at that point and one of the
guidelines that I like to I don't like
to give advice to people a lot but one
of the piece of advice I do give because
I do think it's really true and it's
generally helpful is whenever you're
looking at a set of decisions like
shut you a B or C you got to pick the
thing that's a little scarier in that
list because not you know not like jump
off a cliff scary but the thing that
makes you nervous because if you pick
the safe choice it's usually you're not
really pushing you're not pushing
yourself you're not choosing the thing
that's gonna help you grow so for me the
scarier choice was to say no I was like
well no let's just see where this is
going right because then I own it I mean
it belongs to me it's my thing and I can
just take it and to some other logical
conclusion right because imagine how
different the world would've been had I
said yes and sold the blog it's like
they're probably gonna be stackoverflow
yeah you know a lot of other stuff would
have changed so for that particular
decision I think it was that same rule
like what scares me a little bit more do
the thing that scares you yeah so
speaking of which startups I think
there's a specific some more general
questions that a lot of people would be
interested in you've started
Stack Overflow you started this course
so what's the here's one two three guys
whatever it is in the beginning what was
that process like do you start talking
about it do you start programming do you
start like where is the birth and the
catalyst that actually I can talk about
in the context of Oh Stack Overflow and
discourse so I think the key thing
initially is there is a problem
something the some state of the world
that's unsatisfactory to the point that
like you're upset about it right like in
that case it was experts exchange I mean
Joel's original idea because I
approached I was like look joy I have
all this energy by my blog I want to do
something I want to build something but
I don't know what it is because I'm not
I'm honestly not a good idea person I'm
really not I'm like the execution guy
I'm really good at execution but I'm not
good at like blue skying ideas not my
forte which is another reason why I like
the community feedback because they blue
sky all day long for you right so when I
can just go in and cherry-pick a blue
sky idea from community even if I have
to spend three hours reading to get one
good idea it's worth it man but anyway
so the idea from Joel was hey experts
exchange
it's got great data but the spirits is
hideous right it's it's trying to trick
you it feels like used-car salesmen it's
just bad so I was like oh that's awesome
it feeds in a community it feeds into
like you know we can make a Creative
Commons so I think the core is to have a
really good idea that you feel very
strongly about in the beginning that
like there's a wrong in the world that
we will an injustice that we will right
through the process of building this
thing for discourse it was like look
there's no good software for communities
to just hang out
and like do stuff right like whether
it's problem-solving start up whatever
forums are such a great building block
or online community and they're hideous
they were so bad right it was
embarrassing like I literally was
embarrassed to be associated with this
software right I was we have to have
software they could be proud of
it's like this is competitive with
Reddit this is competitive Twitter this
is competitor with Facebook right I
would be proud to have the software on
my site so that was the genesis of
discourse was feeling very strongly
about there needs to be a good solution
for communities so that's step one
Genesis why do you feel super strongly
about right and then people galvanize
around the idea like Joel was already
super excited with the idea I was
excited about the idea so with the forum
software I was posting on Twitter I had
research as part of my research I start
researching the problem right and I
found a game called forum Wars which was
a parody of forum it's still very very
funny of like foreign behavior circle
like I would say 2003 and it's aged some
right like the behavior is a little
different in there of Twitter but it was
awesome it was very funny and it was
like a game as like an RPG and it had a
forum attached to it so it was like a
game about forums with a forum attached
I was like this is awesome right this is
so cool and the founder of that company
or that project it wasn't really a
company contacted me this guy Robin Ward
from Toronto's hey you know I saw you
been talking about forums and like I
really love that problem space he's like
I'd still love to build really good
forum software cuz I don't think
anything out there is any good and I was
like awesome at that point I was like
we're starting a company because like I
couldn't have wished for a better person
to walk through the door and say I'm
excited about this - same thing with Joe
right I mean Joel is a legend in the
industry right so when he walks through
so I'm excited about as problems like me
- man we can do this right so that to me
is the most important step it's like
having ID you're super excited about and
another person a co-founder right
because again you get that dual
leadership right of like am I making a
bad decision sometimes it's nice to have
checks of like is this a good idea I
don't know right so those are the the
crucial seeds but then starting to build
stuff whether it's you programmer
there's video types so there's tons of
research there's tons of research like
what what's out there that failed
because a lot of people looked at
successes I look at how successful X's
everybody looks at the successes those
are boring show me the failures because
that is what's interesting that's where
people were experimenting that's where
people were pushing but
and they failed but they probably failed
for reasons that weren't directly about
the quality of their idea right yeah so
look at all the failures don't just look
what everybody looks at which is a go
gosh look at all these successful people
look at the failures look at the things
that didn't work research the entire
field and so that's the research that I
was doing that led me to Robin Wright
was that and then when we for example we
did Stack Overflow
we're like okay well I really like
elements of voting and Digg and reddit I
like the the Wikipedia everything is up
to date nothing is like an old tombstone
that like has horrible out-of-date
information we know that works Wikipedia
is an amazing resource blogging the idea
of ownership is so powerful right like
oh I i jo wrote this and look how good
Joe's answer is right like all these
concepts were rolling out researching
all the things are out there that we're
working and why they were working and
trying to like fold them into that again
that Frankenstein's monster of what
Stack Overflow is and by the way that
wasn't a free decision because there's
still a ton of tension in the Stack
Overflow system there's reasons people
complain about Stack Overflow because
it's so strict right why is it so strict
why you guys always closing my questions
it's because there's so much tension
that we built into the system around
like trying to get good good results out
of the system and you know it it's not a
free that stuff doesn't come for free
right it's not like we we're all have
perfect answers and nobody will have to
get their feelings hurt or nobody will
have to get down voted like that it
doesn't work that way right like so this
is an interesting point a small tangent
yeah you're right about anxiety so I've
posted a lot of questions and answers on
Stack Overflow and the questions I
usually go to something very specific to
something I am working on this is
something you talk about that really the
goal of Stack Overflow isn't about is to
write a question not that's not about
you it's about the question that will
help the community in the future right
but that's a tough sell right because
people are like well you know I don't
really care about the committee what I
care about is my problem my problem and
then that's fair right is it sort of
that again that tension that balancing
active we want to help you but we also
hope that everybody comes behind you
right the long line of people are gonna
come up say oh I kind of have that
problem too right and if nobody's ever
going to come up and say I have this
problem too then that question shouldn't
exist on Stack Overflow because the
question is too specific and that even
that's tension right how do you judge
the how do you know that nobody's ever
gonna have this particular question
again so there's a lot of tension in the
system do you think that anxiety of
asking the question the anxiety of
answering that tension is inherent to
programmers is inherent to this kind of
process
or can it be improved can be happy land
where the that tension is not quite so
harsh uh I don't think Stack Overflow
can totally change though it works one
thing they are working on finally is the
ask page had not changed since 2011 I'm
still kind of bitter about this because
I feel like you have a QA system and
what are the core pages in a KA system
well first of all the question all the
answers and all the also the ask page
particularly when you're a new user or
someone trying to ask question that's
the point on what you need the most help
and we just didn't adapt with the times
but the good news is they're working on
this from what I understand and it's
gonna be a more wizard based format and
you could envision a world where as part
of this wizard based program when you're
asking questions okay come up with a
good title what are good words up in the
title one word that's not good to put in
the title is problem for example I have
a problem oh you have a problem okay a
problem that's great right like you need
specifics right like so it's trying to
help you make a good question title for
example that step will 
Resume
Read
file updated 2026-02-13 13:22:40 UTC
Categories
Manage