Jeff Atwood: Stack Overflow and Coding Horror
技术与编程音乐与艺术心理与人性AI 与机器学习政治与社会
📋 章节目录
暂无章节信息
🔑 关键词
donprogrammingstuffstackoverflowdiscourseblogsoftwarecodedoingcommunitysupersaidprogrammerdidngoingcomputerwritingfeedbackworking
💬 精彩语录
暂无语录
🎙️ 完整对话(2389 条)
Lex Fridman (00:00.000)
The following is a conversation with Jeff Atwood.
以下是与杰夫·阿特伍德的对话。
Lex Fridman (00:02.400)
He is the cofounder of Stack Overflow and Stack Exchange,
他是 Stack Overflow 和 Stack Exchange 的联合创始人,
Lex Fridman (00:05.840)
websites that are visited by millions of people
数百万人访问的网站
Lex Fridman (00:08.280)
every single day.
每一天。
Lex Fridman (00:09.560)
Much like with Wikipedia, it is difficult to understate
就像维基百科一样,很难低估
Jeff Atwood (00:13.880)
the impact on global knowledge and productivity
对全球知识和生产力的影响
Lex Fridman (00:16.680)
that these networks of sites have created.
这些网站网络所创建的。
Jeff Atwood (00:19.520)
Jeff is also the author of the famed blog Coding Horror
Jeff 也是著名博客 Coding Horror 的作者
Lex Fridman (00:24.000)
and the founder of Discourse, an open source software
开源软件 Discourse 的创始人
Jeff Atwood (00:27.160)
project that seeks to improve the quality of our online
旨在提高我们在线质量的项目
Lex Fridman (00:31.160)
community discussions.
社区讨论。
Jeff Atwood (00:33.440)
This conversation is part of the MIT course
这段对话是麻省理工学院课程的一部分
Lex Fridman (00:36.640)
on artificial general intelligence
论通用人工智能
Lex Fridman (00:38.480)
and the artificial intelligence podcast.
和人工智能播客。
Lex Fridman (00:40.840)
If you enjoy it, subscribe on YouTube, iTunes,
如果您喜欢,请在 YouTube、iTunes、
Jeff Atwood (00:43.720)
or your podcast provider of choice,
或您选择的播客提供商,
Lex Fridman (00:45.620)
or simply connect with me on Twitter at Lex Friedman,
或者直接在 Twitter 上联系我:Lex Friedman,
Jeff Atwood (00:48.720)
spelled F R I D.
拼写为 F R I D。
Lex Fridman (00:51.000)
And now, here's my conversation with Jeff Atwood.
现在,这是我与杰夫·阿特伍德的对话。
Jeff Atwood (00:56.200)
Having co created and managed for a few years
共同创建和管理了几年
Lex Fridman (00:59.120)
the world's largest community of programmers in Stack Overflow
Lex Fridman (01:02.960)
10 years ago, what do you think motivates most programmers?
Lex Fridman (01:08.600)
Is it fame, fortune, glory, process of programming itself,
Lex Fridman (01:13.320)
or is it the sense of belonging to a community?
Lex Fridman (01:16.440)
It's puzzles, really.
Jeff Atwood (01:17.960)
I think it's this idea of working on puzzles
Lex Fridman (01:22.320)
independently of other people and just solving a problem,
Jeff Atwood (01:25.800)
sort of like on your own almost.
Lex Fridman (01:28.360)
Although, nobody really works alone in programming anymore.
Lex Fridman (01:32.280)
But I will say there's an aspect of hiding yourself away
Lex Fridman (01:36.480)
and just beating on a problem until you solve it,
Jeff Atwood (01:39.560)
like brute force basically to me is
Lex Fridman (01:41.120)
what a lot of programming is.
Jeff Atwood (01:43.000)
The computer's so fast that you can
Lex Fridman (01:44.560)
do things that would take forever for a human,
Lex Fridman (01:46.560)
but you can just do them so many times and so often
Lex Fridman (01:49.200)
that you get the answer.
Jeff Atwood (01:52.040)
You're saying just the pure act of tinkering with the code
Lex Fridman (01:55.520)
is the thing that drives most problems.
Jeff Atwood (01:58.680)
The struggle balance within the joy of overcoming,
Lex Fridman (02:03.000)
the brute force process of pain and suffering
Jeff Atwood (02:05.960)
that eventually leads to something that actually works.
Lex Fridman (02:09.240)
Well, data's fun, too.
Jeff Atwood (02:10.200)
There's this thing called the shuffling problem.
Lex Fridman (02:12.360)
The naive shuffle that most programmers write
Jeff Atwood (02:14.960)
has a huge flaw, and there's a lot of articles
Lex Fridman (02:16.920)
online about this because it can be really bad
Jeff Atwood (02:18.920)
if you're a casino and you have an unsophisticated programmer
Lex Fridman (02:22.040)
writing your shuffle algorithm.
Jeff Atwood (02:23.480)
There's surprising ways to get this wrong,
Lex Fridman (02:25.240)
but the neat thing is the way to figure that out
Jeff Atwood (02:27.240)
is just to run your shuffle a bunch of times
Lex Fridman (02:29.040)
and see how many orientations of cards you get.
Jeff Atwood (02:32.200)
You should get an equal distribution of all the cards.
Lex Fridman (02:34.680)
And with the naive method of shuffling,
Jeff Atwood (02:36.360)
if you just look at the data, if you just brute force it
Lex Fridman (02:38.560)
and say, OK, I don't know what's going to happen,
Jeff Atwood (02:40.880)
you just write a program that does it a billion times
Lex Fridman (02:43.320)
and then see what the buckets look like of the data.
Lex Fridman (02:46.040)
And the Monty Hall problem is another example of that,
Lex Fridman (02:48.200)
where you have three doors and somebody gives you
Jeff Atwood (02:50.600)
information about another door.
Lex Fridman (02:52.680)
So the correct answer is you should always
Jeff Atwood (02:54.480)
switch in the Monty Hall problem, which is not intuitive,
Lex Fridman (02:56.400)
and it freaks people out all the time.
Lex Fridman (02:58.040)
But you can solve it with data.
Lex Fridman (02:59.760)
If you write a program that does the Monty Hall game
Lex Fridman (03:04.360)
and then never switches, then always switches, just compare,
Lex Fridman (03:06.840)
you would immediately see that you don't have to be smart.
Jeff Atwood (03:09.640)
You don't have to figure out the answer algorithmically.
Lex Fridman (03:11.560)
You can just brute force it out with data and say, well,
Jeff Atwood (03:13.360)
I know the answer is this because I ran the program
Lex Fridman (03:15.440)
a billion times, and these are the data buckets
Jeff Atwood (03:17.440)
that I got from it.
Lex Fridman (03:18.920)
So empirically find it.
Lex Fridman (03:20.280)
But what's the joy of that?
Lex Fridman (03:22.280)
So for you, for you personally, outside of family,
Lex Fridman (03:26.320)
what motivates you in this process?
Lex Fridman (03:29.400)
Well, to be honest, I don't really
Jeff Atwood (03:30.960)
write a lot of code anymore.
Lex Fridman (03:32.520)
What I do at Discourse is managery stuff,
Jeff Atwood (03:35.040)
which I always despised.
Lex Fridman (03:37.800)
As a programmer, you think of managers
Jeff Atwood (03:39.200)
as people who don't really do anything themselves.
Lex Fridman (03:42.320)
But the weird thing about code is you
Jeff Atwood (03:43.960)
realize that language is code.
Lex Fridman (03:45.880)
The ability to direct other people
Jeff Atwood (03:48.280)
lets you get more stuff done than you
Lex Fridman (03:50.560)
could by yourself anyway.
Lex Fridman (03:52.240)
You said language is code?
Lex Fridman (03:53.600)
Language is code.
Lex Fridman (03:54.360)
Meaning communication with other humans?
Lex Fridman (03:56.040)
Yes, it is.
Jeff Atwood (03:56.840)
You can think of it as a systematic.
Lex Fridman (03:58.480)
So what is it like to be, what makes,
Lex Fridman (04:01.760)
before we get into programming, what makes a good manager?
Lex Fridman (04:04.280)
What makes a good leader?
Jeff Atwood (04:05.800)
Well, I think a leader, it's all about leading by example,
Lex Fridman (04:08.280)
first of all, sort of doing and being the things
Jeff Atwood (04:11.400)
that you want to be.
Lex Fridman (04:12.440)
Now, this can be kind of exhausting,
Jeff Atwood (04:13.600)
particularly when you have kids, because you
Lex Fridman (04:14.760)
realize that your kids are watching you all the time,
Jeff Atwood (04:17.760)
even in ways that you've stopped seeing yourself.
Lex Fridman (04:20.720)
The hardest person to see on the planet is really yourself.
Jeff Atwood (04:23.560)
It's a lot easier to see other people
Lex Fridman (04:24.560)
and make judgments about them.
Lex Fridman (04:26.240)
But yourself, you're super biased.
Lex Fridman (04:28.360)
You don't actually see yourself the way other people see you.
Jeff Atwood (04:30.840)
Often, you're very, very hard on yourself in a way
Lex Fridman (04:33.000)
that other people really aren't going to be.
Lex Fridman (04:34.760)
So that's one of the insights is you've
Lex Fridman (04:37.880)
got to be really diligent about thinking,
Jeff Atwood (04:40.200)
am I behaving in a way that represents
Lex Fridman (04:42.360)
how I want other people to behave,
Lex Fridman (04:44.720)
like leading through example?
Lex Fridman (04:46.120)
There's a lot of examples of leaders
Jeff Atwood (04:47.960)
that really mess this up, like they make decisions that
Lex Fridman (04:50.280)
are like, wow, it's a bad example for other people.
Lex Fridman (04:54.960)
So I think leading by example is one.
Lex Fridman (04:57.440)
The other one I believe is working really hard.
Lex Fridman (04:59.640)
And I don't mean working exhaustively,
Lex Fridman (05:01.520)
but showing a real passion for the problem,
Jeff Atwood (05:07.200)
not necessarily your solution to the problem,
Lex Fridman (05:09.000)
but the problem itself is just one that you really believe in.
Jeff Atwood (05:11.040)
Like with discourse, for example,
Lex Fridman (05:12.480)
the problem that we're looking at,
Jeff Atwood (05:13.960)
which is my current project, is how do you get people
Lex Fridman (05:17.360)
in groups to communicate in a way that doesn't break down
Lex Fridman (05:20.040)
into the howling of wolves?
Lex Fridman (05:21.920)
How do you deal with trolling?
Jeff Atwood (05:23.600)
Not like technical problems.
Lex Fridman (05:24.920)
How do I get people to post paragraphs?
Lex Fridman (05:26.440)
How do I get people to use bold?
Lex Fridman (05:27.480)
How do I get people to use complete sentences,
Lex Fridman (05:29.480)
although those are problems as well?
Lex Fridman (05:30.840)
But how do I get people to get along with each other
Lex Fridman (05:33.560)
and then solve whatever problem it is they set out to solve,
Lex Fridman (05:36.120)
or reach some consensus on discussion,
Lex Fridman (05:38.280)
or just not hurt each other even?
Lex Fridman (05:39.920)
Maybe it's a discussion that doesn't really matter,
Lex Fridman (05:41.920)
but are people yelling at each other?
Lex Fridman (05:43.560)
And why?
Jeff Atwood (05:44.400)
Like that's not the purpose of this kind of communication.
Lex Fridman (05:46.720)
So I would say leadership is about setting an example,
Jeff Atwood (05:52.960)
doing the things that represent what you want to be,
Lex Fridman (05:54.880)
and making sure that you're actually doing those things.
Lex Fridman (05:56.760)
And there's a trick to that too,
Lex Fridman (05:58.120)
because the things you don't do
Jeff Atwood (05:59.720)
also say a lot about what you are.
Lex Fridman (06:02.400)
Yeah, so let's pause on that one.
Lex Fridman (06:03.960)
So those two things are fascinating.
Lex Fridman (06:05.160)
So how do you have as a leader that self awareness?
Lex Fridman (06:08.080)
So you just said it's really hard to be self aware.
Lex Fridman (06:10.200)
So for you personally, or maybe for other leaders
Jeff Atwood (06:12.880)
you've seen or look up to,
Lex Fridman (06:14.160)
how do you know both that the things you're doing
Jeff Atwood (06:18.600)
are the wrong things to be doing,
Lex Fridman (06:20.000)
the way you speak to others, the way you behave,
Lex Fridman (06:22.280)
and the things you're not doing?
Lex Fridman (06:23.600)
How do you get that signal?
Jeff Atwood (06:24.440)
I think there's two aspects to that.
Lex Fridman (06:26.360)
One is like processing feedback that you're getting, so.
Lex Fridman (06:29.400)
How do you get feedback?
Lex Fridman (06:30.240)
Well, right, so are you getting feedback, right?
Lex Fridman (06:32.280)
So one way we do it, for example, with discourse,
Lex Fridman (06:33.640)
we have three cofounders,
Lex Fridman (06:34.800)
and we periodically talk about decisions
Lex Fridman (06:37.280)
before we make them.
Lex Fridman (06:38.120)
So it's not like one person can make a mistake,
Lex Fridman (06:40.720)
or like, wow, there can be misunderstandings, things like that.
Lex Fridman (06:43.160)
So it's part of like group consensus of leadership
Lex Fridman (06:45.520)
is like it's good to have,
Jeff Atwood (06:47.000)
I think systems where there's one leader,
Lex Fridman (06:49.320)
and that leader has the rule of absolute law
Jeff Atwood (06:50.920)
are just really dangerous in my experience.
Lex Fridman (06:53.480)
For communities, for example,
Jeff Atwood (06:54.560)
like if you have a community that's run by one person,
Lex Fridman (06:56.120)
that one person makes all the decisions,
Jeff Atwood (06:57.480)
that person's gonna have a bad day.
Lex Fridman (06:59.320)
Something could happen to that person, something,
Jeff Atwood (07:02.480)
there's a lot of variables.
Lex Fridman (07:03.320)
So like first, when you think about leadership,
Jeff Atwood (07:05.240)
have multiple people doing leadership
Lex Fridman (07:07.000)
and have them talk amongst each other.
Lex Fridman (07:08.880)
So giving each other feedback about the decisions
Lex Fridman (07:11.320)
that they're making.
Lex Fridman (07:12.160)
And then when you do get feedback,
Lex Fridman (07:13.640)
I think there's that little voice in your head, right?
Jeff Atwood (07:16.240)
Or your gut or wherever you wanna put it in your body.
Lex Fridman (07:19.040)
I think that voice is really important.
Jeff Atwood (07:22.320)
Like I think most people who have any kind of moral compass
Lex Fridman (07:25.120)
or like want to do,
Jeff Atwood (07:25.960)
most people want to do the right thing.
Lex Fridman (07:27.280)
I do believe that.
Jeff Atwood (07:28.360)
I mean, there might be a handful of sociopaths
Lex Fridman (07:30.640)
out there that don't, but most people,
Jeff Atwood (07:32.520)
they want other people to think of them as a good person.
Lex Fridman (07:34.640)
And why wouldn't you, right?
Lex Fridman (07:35.560)
Like, do you want people to despise you?
Lex Fridman (07:36.800)
I mean, that's just weird, right?
Lex Fridman (07:38.040)
So you have that little voice
Lex Fridman (07:39.160)
that sort of the angel and devil on your shoulder
Jeff Atwood (07:40.960)
sort of talking to you about like what you're doing,
Lex Fridman (07:43.000)
how you're doing, how does it make you feel
Lex Fridman (07:44.520)
to make these decisions, right?
Lex Fridman (07:46.240)
And I think having some attunement to that voice
Jeff Atwood (07:49.200)
is important.
Lex Fridman (07:50.160)
But you said that voice also for,
Jeff Atwood (07:52.280)
I think this is a programmer situation too,
Lex Fridman (07:55.080)
where sometimes the devil on the shoulder
Jeff Atwood (07:57.080)
is a little too loud.
Lex Fridman (07:59.680)
So you're a little too self critical
Jeff Atwood (08:02.000)
for a lot of developers,
Lex Fridman (08:03.320)
and especially when you have introverted personality.
Lex Fridman (08:05.520)
How do you struggle with a self criticism
Lex Fridman (08:07.520)
or the criticism of others?
Lex Fridman (08:09.720)
So one of the things of leadership
Lex Fridman (08:11.720)
is to do something that's potentially unpopular
Jeff Atwood (08:14.360)
or where people doubt you
Lex Fridman (08:15.720)
and you still go through with the decision.
Lex Fridman (08:18.200)
So what's that balance like?
Lex Fridman (08:21.040)
I think you have to walk people
Lex Fridman (08:22.080)
through your decision making, right?
Lex Fridman (08:23.160)
Like you have to, this is where blogging
Jeff Atwood (08:24.360)
is really important and communication is so important.
Lex Fridman (08:26.000)
Again, code language is just another kind of code.
Jeff Atwood (08:27.800)
It's like, here is the program
Lex Fridman (08:29.600)
by which I arrived at the conclusion
Lex Fridman (08:31.640)
that I'm gonna reach, right?
Lex Fridman (08:33.200)
It's one thing to say like,
Lex Fridman (08:34.040)
this is a decision, it's final, deal with it, right?
Lex Fridman (08:36.680)
That's not usually satisfying to people.
Lex Fridman (08:38.720)
But if you say, look,
Lex Fridman (08:39.920)
we've been thinking about this problem for a while.
Jeff Atwood (08:41.240)
Here's some stuff that's happened.
Lex Fridman (08:42.480)
Here's what we think is right.
Jeff Atwood (08:43.880)
Here's our goals.
Lex Fridman (08:44.800)
Here's what we wanna achieve.
Lex Fridman (08:45.840)
And we've looked at these options
Lex Fridman (08:47.760)
and we think this available options is the best option.
Lex Fridman (08:50.440)
People will be like, oh, okay, right?
Lex Fridman (08:52.000)
Maybe I don't totally agree with you,
Lex Fridman (08:52.960)
but I can kind of see where you're coming from
Lex Fridman (08:54.240)
and I see it's not just arbitrary decision
Lex Fridman (08:56.760)
delivered from a cloud of flames in the sky, right?
Lex Fridman (09:00.160)
It's like a human trying to reach
Jeff Atwood (09:02.280)
some kind of consensus about goals.
Lex Fridman (09:04.240)
And their goals might be different than yours.
Lex Fridman (09:05.640)
That's completely legit, right?
Lex Fridman (09:06.680)
But if you're making that clear, it's like,
Jeff Atwood (09:08.760)
oh, well, the reason we don't agree
Lex Fridman (09:09.880)
is because we have totally different goals, right?
Lex Fridman (09:11.600)
Like, how could we agree?
Lex Fridman (09:12.840)
It's not that you're a bad person.
Jeff Atwood (09:14.040)
It's that we have radically different goals in mind
Lex Fridman (09:16.640)
when we started looking at this problem.
Lex Fridman (09:18.040)
And the other one you said is passion.
Lex Fridman (09:19.640)
So, or hard work, sorry.
Jeff Atwood (09:22.280)
Well, those are tied together in my mind.
Lex Fridman (09:24.040)
Let's say hard work and passion.
Jeff Atwood (09:24.960)
Like for me, like I just really love
Lex Fridman (09:26.680)
the problem discourse is setting out to solve
Jeff Atwood (09:28.280)
because in a way it's like,
Lex Fridman (09:30.520)
there's a vision of the world
Jeff Atwood (09:32.080)
where it all devolves into Facebook
Lex Fridman (09:33.600)
basically owning everything and every aspect
Lex Fridman (09:35.920)
of human communication, right?
Lex Fridman (09:37.000)
And this has always been kind of a scary world for me.
Jeff Atwood (09:39.880)
First, cause I don't,
Lex Fridman (09:40.800)
I think Facebook is really good at execution.
Jeff Atwood (09:42.360)
I got to compliment them.
Lex Fridman (09:43.200)
They're very competent in terms of what they're doing,
Lex Fridman (09:45.360)
but Facebook has not much of a moral compass
Lex Fridman (09:48.120)
in terms of Facebook cares about Facebook, really.
Jeff Atwood (09:50.960)
They don't really care about you and your problems.
Lex Fridman (09:53.480)
What they care about is how big they can make Facebook,
Lex Fridman (09:56.120)
right?
Lex Fridman (09:56.960)
Is that you talking about the company
Lex Fridman (09:57.800)
or just the mechanism of how Facebook works?
Lex Fridman (09:59.880)
Kind of both really, right?
Jeff Atwood (10:01.000)
Like, and the idea with discourse,
Lex Fridman (10:02.680)
the reason I'm so passionate about it
Jeff Atwood (10:03.840)
is cause I believe every community
Lex Fridman (10:05.320)
should have the right to own themselves, right?
Jeff Atwood (10:07.000)
Like they should have their own software that they can run
Lex Fridman (10:09.560)
that belongs to them.
Jeff Atwood (10:10.960)
That's their space where they can set the rules.
Lex Fridman (10:12.840)
And if they don't like it,
Jeff Atwood (10:13.680)
they can move to different hosting or,
Lex Fridman (10:15.320)
you know, whatever they need to happen can happen.
Lex Fridman (10:18.040)
But like this idea of a company town
Lex Fridman (10:20.560)
where all human communication is implicitly owned
Jeff Atwood (10:22.640)
by WhatsApp, Instagram, and Facebook.
Lex Fridman (10:25.240)
And it's really disturbing too,
Jeff Atwood (10:26.160)
cause Facebook is really smart.
Lex Fridman (10:27.720)
Like I said, they're great at execution.
Jeff Atwood (10:28.880)
Buying in WhatsApp and buying Instagram
Lex Fridman (10:30.600)
were incredibly smart decisions.
Lex Fridman (10:33.160)
And they also do this thing, I don't know if you know,
Lex Fridman (10:34.720)
but they have this VPN software
Jeff Atwood (10:36.240)
that they give away for free on smartphones
Lex Fridman (10:38.760)
and it indirectly feeds all the data
Jeff Atwood (10:40.960)
about the traffic back to Facebook.
Lex Fridman (10:42.760)
So they can see what's actually getting popular
Lex Fridman (10:44.560)
through the VPNs, right?
Lex Fridman (10:45.880)
They have low level access to the network data
Jeff Atwood (10:48.320)
because users have let them have that.
Lex Fridman (10:50.360)
So.
Lex Fridman (10:51.360)
So let's take a small pause here.
Lex Fridman (10:54.040)
First of all, discourse.
Lex Fridman (10:55.280)
Can you talk about, can you lay out the land
Lex Fridman (10:59.000)
of all the different ways you can have communities?
Lex Fridman (11:01.800)
So there's Stack Overflow that you've built.
Lex Fridman (11:03.760)
There's discourse.
Lex Fridman (11:05.200)
So Stack Overflow is kind of like a Wiki,
Lex Fridman (11:07.200)
Wikipedia you talk about.
Lex Fridman (11:09.120)
And it's a very specific scalpel, very focused.
Lex Fridman (11:11.880)
So what is the purpose of discourse
Lex Fridman (11:13.440)
and maybe contrast that with Facebook?
Lex Fridman (11:16.000)
First of all, say, what is discourse?
Jeff Atwood (11:17.960)
Yeah.
Lex Fridman (11:18.800)
Start from the beginning.
Jeff Atwood (11:19.640)
Well, let me start from the very beginning.
Lex Fridman (11:20.480)
So Stack Overflow is a very structured
Lex Fridman (11:21.920)
Wiki style Q and A for programmers, right?
Lex Fridman (11:24.600)
And that was the problem we first worked on.
Lex Fridman (11:26.680)
And when we started, we thought it was discussions
Lex Fridman (11:28.840)
because we looked at like programming forums
Lex Fridman (11:30.760)
and other things, but we quickly realized
Lex Fridman (11:32.640)
we were doing Q and A, which is a very narrow subset
Lex Fridman (11:35.400)
of human communication, right?
Lex Fridman (11:36.880)
Sorry, so when you started Stack Overflow,
Jeff Atwood (11:38.760)
you thought you didn't even know the Q and A.
Lex Fridman (11:41.760)
Not really.
Jeff Atwood (11:42.600)
You didn't know it would be Q and A.
Lex Fridman (11:43.440)
Well, we didn't know.
Jeff Atwood (11:44.280)
We had an idea of like, okay, these are things
Lex Fridman (11:45.720)
that we see working online.
Lex Fridman (11:46.840)
We had a goal, right?
Lex Fridman (11:47.680)
Our goal was there was this site, Experts Exchange,
Jeff Atwood (11:50.960)
with a very unfortunate name.
Lex Fridman (11:52.560)
Thank you for killing that site.
Lex Fridman (11:53.800)
Yeah, I know, right?
Lex Fridman (11:54.680)
Like a lot of people don't remember it anymore,
Jeff Atwood (11:56.400)
which is great.
Lex Fridman (11:57.240)
Like that's the measure of success
Jeff Atwood (11:58.080)
when people don't remember the thing
Lex Fridman (11:59.280)
that you were trying to replace, then you've totally won.
Lex Fridman (12:02.600)
So it was a place to get answers to programming questions,
Lex Fridman (12:05.600)
but it wasn't clear if it was like focused Q and A,
Jeff Atwood (12:07.440)
if it was a discussion.
Lex Fridman (12:08.760)
There were plenty of programming forums.
Lex Fridman (12:10.320)
So we weren't really sure.
Lex Fridman (12:11.320)
We were like, okay, we'll take aspects of dig and Reddit,
Jeff Atwood (12:13.440)
like voting were very important.
Lex Fridman (12:15.720)
Reordering answers based on votes.
Jeff Atwood (12:17.400)
Wiki style stuff of like being able to edit posts,
Lex Fridman (12:19.560)
not just your posts, but other people's posts
Jeff Atwood (12:21.240)
to make them better and keep them more up to date.
Lex Fridman (12:23.840)
Ownership of blogging of like, okay, this is me.
Jeff Atwood (12:26.160)
I'm saying this in my voice, this is the stuff that I know.
Lex Fridman (12:29.800)
And your reputation accrues to you
Lex Fridman (12:33.360)
and it's peer recognition.
Lex Fridman (12:34.880)
So you asked earlier, like what motivates programmers?
Jeff Atwood (12:37.040)
I think peer recognition motivates them a lot.
Lex Fridman (12:40.040)
That was one of the key insights of Stack Overflow
Jeff Atwood (12:41.840)
was like recognition from your peers is why things get done.
Lex Fridman (12:44.960)
Not necessarily money, not necessarily your boss,
Lex Fridman (12:46.400)
but like your peers saying, wow,
Lex Fridman (12:47.840)
this person really knows their stuff, has a lot of value.
Lex Fridman (12:50.360)
So the reputation system came from that.
Lex Fridman (12:53.280)
So we were sort of Frankensteining a bunch of stuff together
Jeff Atwood (12:56.320)
in Stack Overflow, like stuff we had seen working
Lex Fridman (12:58.680)
and we knew worked and that became Stack Overflow.
Jeff Atwood (13:04.400)
Over time, we realized it wasn't really discussion.
Lex Fridman (13:06.520)
It was very focused questions and answers.
Jeff Atwood (13:08.760)
There wasn't a lot of room on the page
Lex Fridman (13:10.040)
for let me talk about this tangential thing.
Lex Fridman (13:12.520)
It was more like, okay, is it answering the question?
Lex Fridman (13:14.760)
Is it clarifying the question?
Lex Fridman (13:16.160)
Or could it be an alternative answer to the same question?
Lex Fridman (13:18.720)
Because there's usually more than one way to do it
Jeff Atwood (13:20.560)
in programming, there's like say five to 10 ways.
Lex Fridman (13:22.640)
And one of the patterns we got into early on
Jeff Atwood (13:24.400)
with Stack Overflow was there were questions
Lex Fridman (13:26.440)
where there would be like hundreds of answers.
Lex Fridman (13:28.440)
And we're like, wow, how can there be a programming question
Lex Fridman (13:31.800)
with 500, 200, 500 answers?
Lex Fridman (13:34.720)
And we looked at those and we realized
Lex Fridman (13:36.160)
those were not really questions in the traditional sense.
Jeff Atwood (13:38.840)
They were discussions.
Lex Fridman (13:39.800)
It was stuff that we allowed early on
Jeff Atwood (13:42.280)
that we eventually decided wasn't allowed such as
Lex Fridman (13:44.640)
what's your favorite programming food?
Lex Fridman (13:46.760)
What's the funniest programming cartoon you've seen?
Lex Fridman (13:49.560)
And we had to sort of backfill a bunch of rules
Lex Fridman (13:51.320)
about like, why isn't this allowed?
Lex Fridman (13:53.080)
Such as, is this a real problem you're facing?
Jeff Atwood (13:55.160)
Like nobody goes to work and says, wow, I can't work
Lex Fridman (13:57.200)
cause I don't know what the funniest programming cartoon is.
Lex Fridman (13:59.080)
So sorry, can't compile this code now, right?
Lex Fridman (14:02.040)
It's not a real problem you're facing in your job.
Lex Fridman (14:04.600)
So that was run rule.
Lex Fridman (14:05.440)
And the second, like, what can you really learn from that?
Jeff Atwood (14:07.320)
It's like what I call accidental learning
Lex Fridman (14:08.760)
or Reddit style learning.
Jeff Atwood (14:10.200)
Where you're just like, oh, I'll just browse some things
Lex Fridman (14:11.640)
and oh, wow, you know, did you know
Lex Fridman (14:13.360)
tree frogs only live three years?
Lex Fridman (14:14.960)
I mean, I just made that up.
Jeff Atwood (14:16.000)
I don't know if that's true.
Lex Fridman (14:16.920)
But I didn't really set out to learn that.
Lex Fridman (14:18.920)
I don't need to know that, right?
Lex Fridman (14:20.280)
It's accidental learning.
Jeff Atwood (14:21.760)
It was more intentional learning where you're like,
Lex Fridman (14:23.840)
okay, I have a problem.
Lex Fridman (14:24.660)
And I want to learn about stuff
Lex Fridman (14:25.500)
around this problem having, right?
Lex Fridman (14:27.160)
And it could be theory, it could be compiler theory,
Lex Fridman (14:29.160)
it could be other stuff, but I'm having a compiler problem.
Jeff Atwood (14:31.840)
Hence, I need to know the compiler theory,
Lex Fridman (14:34.320)
that aspect of it that gets me to my answer, right?
Lex Fridman (14:38.160)
So kind of a directed learning.
Lex Fridman (14:39.400)
So we had to backfill all these rules
Jeff Atwood (14:40.960)
as we sort of figured out what the heck it was we were doing.
Lex Fridman (14:43.680)
And the system came very strict over time.
Lex Fridman (14:45.420)
And a lot of people still complain about that.
Lex Fridman (14:46.880)
And I wrote my latest blog entry,
Lex Fridman (14:49.040)
what does Stack Overflow want to be when it grows up?
Lex Fridman (14:52.360)
Celebrating the 10 year anniversary, yeah.
Jeff Atwood (14:54.200)
Yeah, so 10 years.
Lex Fridman (14:55.240)
And the system has trended towards strictness.
Jeff Atwood (14:57.680)
There's a variety of reasons for this.
Lex Fridman (14:58.900)
One is people don't like to see other people
Jeff Atwood (15:01.320)
get reputation for stuff as they view as frivolous,
Lex Fridman (15:03.960)
which I can actually understand.
Jeff Atwood (15:05.080)
Because if you saw a programmer got like 500 upvotes
Lex Fridman (15:07.880)
for funniest programming cartoon
Jeff Atwood (15:10.360)
or funniest comment they had seen in code,
Lex Fridman (15:11.800)
it's like, well, why do they have that reputation?
Lex Fridman (15:13.820)
Is it because they wrote the joke?
Lex Fridman (15:15.040)
Probably not.
Lex Fridman (15:15.880)
I mean, if they did, maybe, or the cartoon, right?
Lex Fridman (15:18.240)
They're getting a bunch of reputation
Jeff Atwood (15:19.440)
based on someone else's work that's not even programming.
Lex Fridman (15:22.640)
It's just a joke, right?
Jeff Atwood (15:23.600)
It's related to programming.
Lex Fridman (15:24.800)
So you begin to resent that.
Jeff Atwood (15:26.440)
You're like, well, that's not fair.
Lex Fridman (15:27.520)
And it isn't.
Jeff Atwood (15:28.000)
At some level, they're correct.
Lex Fridman (15:29.080)
I mean, I empathize.
Jeff Atwood (15:30.000)
Because it's not correct to get reputation for that.
Lex Fridman (15:32.200)
Versus here's a really gnarly regular expression problem.
Lex Fridman (15:36.040)
And here's a really clever, insightful, detailed answer
Lex Fridman (15:40.040)
laying out, oh, here's why you're
Jeff Atwood (15:41.640)
seeing the behavior that you're seeing.
Lex Fridman (15:42.560)
Here, let me teach you some things about how
Jeff Atwood (15:43.880)
to avoid that in the future.
Lex Fridman (15:44.920)
That's great.
Lex Fridman (15:45.680)
That's gold, right?
Lex Fridman (15:46.560)
You want people to get reputation for that,
Lex Fridman (15:47.920)
not so much for, wow, look at this funny thing I saw, right?
Lex Fridman (15:50.960)
Great.
Lex Fridman (15:51.480)
So there's this very specific Q&A format.
Lex Fridman (15:54.320)
And then take me through the journey towards discourse
Lex Fridman (15:57.440)
and Facebook and Twitter.
Lex Fridman (15:58.600)
So you started at the beginning that Stack Overflow
Jeff Atwood (16:01.440)
evolved to have a purpose.
Lex Fridman (16:02.960)
So what is discourse, this passion
Lex Fridman (16:06.320)
you have for creating community for discussion?
Lex Fridman (16:10.800)
When was that born and how?
Jeff Atwood (16:12.160)
Well, part of it is based on the realization
Lex Fridman (16:13.560)
that Stack Overflow is only good for very specific subjects
Jeff Atwood (16:16.560)
where it's based on data, facts, and science,
Lex Fridman (16:19.680)
where answers can be kind of verified to be true.
Jeff Atwood (16:22.480)
Another form of that is there's the book of knowledge,
Lex Fridman (16:24.840)
like the tome of knowledge that defines whatever it is.
Jeff Atwood (16:28.440)
You can refer to that book and it'll give you the answer.
Lex Fridman (16:30.840)
There has to be, it only works on subjects
Jeff Atwood (16:33.080)
where there's like semi clear answers to things
Lex Fridman (16:35.320)
that can be verified in some form.
Jeff Atwood (16:37.520)
Now again, there's always more than one way to do it.
Lex Fridman (16:39.760)
There's complete flexibility and system around that.
Lex Fridman (16:41.880)
But where it falls down is stuff like poker and LEGO.
Lex Fridman (16:45.280)
Like we had, if you go to stackexchange.com,
Jeff Atwood (16:48.720)
we have an engine that tries to launch
Lex Fridman (16:50.400)
different Q&A topics, right?
Lex Fridman (16:52.280)
And people can propose Q&A topics, sample questions,
Lex Fridman (16:56.960)
and if it gets enough support within the network,
Jeff Atwood (16:59.040)
we launched that Q&A site.
Lex Fridman (17:00.080)
So some of the ones we launched were poker and LEGO
Lex Fridman (17:02.280)
and they did horribly, right?
Lex Fridman (17:03.360)
Because I mean, they might still be there lingering on
Jeff Atwood (17:06.200)
in some form, but it was an experiment.
Lex Fridman (17:07.800)
This is like a test, right?
Lex Fridman (17:09.000)
And some subjects work super well on the stack engine
Lex Fridman (17:11.680)
and some don't.
Lex Fridman (17:12.720)
But the reason LEGO and poker don't work
Lex Fridman (17:14.600)
is because they're so social, really.
Jeff Atwood (17:16.040)
It's not about what's the rule here in poker.
Lex Fridman (17:19.080)
It's like, well, what kind of cigars
Lex Fridman (17:21.440)
do we like to smoke while playing poker?
Lex Fridman (17:23.480)
Or what's a cool set of cards to use when I'm playing poker?
Lex Fridman (17:26.920)
Or what's some strategies?
Lex Fridman (17:28.680)
Say I have this hand come up with some strategies
Jeff Atwood (17:30.760)
I could use.
Lex Fridman (17:31.200)
It's more of a discussion around what's happening with LEGO.
Jeff Atwood (17:34.200)
Same thing, here's this cool LEGO set I found.
Lex Fridman (17:36.000)
Look how awesome this is.
Lex Fridman (17:36.880)
And I'm like, yeah, that's freaking awesome, right?
Lex Fridman (17:38.520)
It's not a question, right?
Jeff Atwood (17:39.880)
There's all these social components and discussions
Lex Fridman (17:41.960)
that don't fit at all.
Jeff Atwood (17:43.200)
We literally have to disallow those in Stack Overflow
Lex Fridman (17:45.280)
because it's not about being social.
Jeff Atwood (17:46.780)
It's about problems that you're facing in your work
Lex Fridman (17:49.360)
that you need concrete answers for.
Jeff Atwood (17:51.000)
You have a real demonstrated problem that's
Lex Fridman (17:52.880)
blocking you in something.
Jeff Atwood (17:54.040)
Nobody's blocked by, what should I
Lex Fridman (17:56.200)
do when I have a straight flush?
Jeff Atwood (17:58.200)
It's not a blocking problem in the world.
Lex Fridman (18:00.400)
It's just an opportunity to hang out and discuss.
Lex Fridman (18:02.320)
So discourse was a way to address that and say, look,
Lex Fridman (18:07.680)
discussion forum software was very, very bad.
Lex Fridman (18:10.680)
And when I came out of Stack Overflow in early 2012,
Lex Fridman (18:18.400)
it was still very, very bad.
Jeff Atwood (18:19.800)
I expected it improved in the four years since I last looked,
Lex Fridman (18:22.800)
but it had not improved at all.
Lex Fridman (18:24.160)
And I was like, well, that's kind of terrible
Lex Fridman (18:26.000)
because I love these communities of people talking about things
Jeff Atwood (18:29.880)
that they love.
Lex Fridman (18:31.120)
They're just communities of interest, right?
Lex Fridman (18:32.920)
And there's no good software for them.
Lex Fridman (18:35.320)
Startups would come to me and say, hey, Jeff,
Jeff Atwood (18:37.360)
I want to have this startup.
Lex Fridman (18:39.720)
Here's my idea.
Lex Fridman (18:40.880)
And the first thing I would say to them
Lex Fridman (18:42.460)
is, well, first, why are you asking me?
Jeff Atwood (18:44.160)
I don't really know your field necessarily.
Lex Fridman (18:47.440)
Why aren't you asking the community,
Jeff Atwood (18:49.120)
the people that are interested in this problem,
Lex Fridman (18:51.240)
the people that are using your product,
Lex Fridman (18:52.440)
why aren't you talking to them?
Lex Fridman (18:53.960)
And then they'd say, oh, great idea.
Lex Fridman (18:55.320)
How do I do that?
Lex Fridman (18:56.080)
And then that's when I started playing sad trombone
Jeff Atwood (18:58.080)
because I realized all the software involving
Lex Fridman (19:00.040)
talking to your users, customers, audience, patrons,
Jeff Atwood (19:03.240)
whatever it is, it was all really bad.
Lex Fridman (19:04.880)
It was stuff that I would be embarrassed
Jeff Atwood (19:06.640)
to recommend to other people.
Lex Fridman (19:08.320)
And yet, that's where I felt they could get the biggest
Lex Fridman (19:10.800)
and strongest, most effective input
Lex Fridman (19:12.760)
for what they should be doing with their product, right?
Lex Fridman (19:15.560)
It's from their users, from their community, right?
Lex Fridman (19:17.480)
That's what we did on Stack Overflow.
Lex Fridman (19:18.840)
So what we're talking about with forums,
Lex Fridman (19:21.320)
the, what is it, the dark matter of the internet,
Jeff Atwood (19:25.440)
it's still, I don't know if it's still,
Lex Fridman (19:26.800)
but for the longest time,
Jeff Atwood (19:28.720)
it has some of the most passionate
Lex Fridman (19:31.480)
and fascinating discussions.
Lex Fridman (19:32.760)
And what's the usual structure?
Lex Fridman (19:34.600)
There's usually, it's linear, so it's sequential.
Lex Fridman (19:38.160)
So you're posting one after the other
Lex Fridman (19:39.600)
and there's pagination, so it's every,
Jeff Atwood (19:42.760)
there's 10 posts and then you go to the next page.
Lex Fridman (19:45.000)
And that format still is used by,
Jeff Atwood (19:48.040)
like I'm, we're doing a lot of research
Lex Fridman (19:50.040)
with Tesla vehicles and there's a Tesla Motors Club forum,
Jeff Atwood (19:53.560)
which is extremely.
Lex Fridman (19:54.400)
We really wanted to run that actually.
Jeff Atwood (19:56.240)
They pinged us about it, I don't think we got it,
Lex Fridman (19:57.680)
but I really would have liked to gotten that one.
Lex Fridman (19:59.200)
But they've started before even 2012, I believe.
Lex Fridman (1:00:00.680)
It's like, you don't want a heartbeat that's like so fast.
Jeff Atwood (1:00:02.400)
It's like you're just freaking out.
Lex Fridman (1:00:04.440)
But it is a measure of health.
Jeff Atwood (1:00:05.720)
You should have a healthy heartbeat.
Lex Fridman (1:00:07.320)
It's up to people listening to decide what that means.
Lex Fridman (1:00:09.560)
But it has to be healthy.
Lex Fridman (1:00:10.880)
It has to be reasonable.
Jeff Atwood (1:00:11.680)
Because otherwise, you're just going
Lex Fridman (1:00:12.840)
to be frustrated because that's how you build software.
Jeff Atwood (1:00:15.140)
You make mistakes.
Lex Fridman (1:00:15.940)
You roll it out.
Jeff Atwood (1:00:16.600)
You live with it.
Lex Fridman (1:00:17.760)
You see what it feels like and say, oh, God,
Jeff Atwood (1:00:19.160)
that was a terrible idea.
Lex Fridman (1:00:20.160)
Oh, my gosh, this could be even better if we did Y, right?
Jeff Atwood (1:00:22.720)
You turn the crank.
Lex Fridman (1:00:23.480)
And then the more you do that, the faster
Jeff Atwood (1:00:25.920)
you get ahead of your competitors ultimately.
Lex Fridman (1:00:28.640)
It's rate of change, right?
Lex Fridman (1:00:29.680)
Delta V, right?
Lex Fridman (1:00:30.920)
How fast are you moving?
Jeff Atwood (1:00:32.660)
Well, within a year, you're going to be miles away
Lex Fridman (1:00:34.760)
by the time they catch up with you, right?
Jeff Atwood (1:00:36.760)
That's the way it works.
Lex Fridman (1:00:37.880)
And plus, as a software developer and user,
Jeff Atwood (1:00:40.800)
I love software that's constantly changing.
Lex Fridman (1:00:42.800)
Because I don't understand people who get super pissed off
Jeff Atwood (1:00:45.600)
when like, oh, they changed the software on me.
Lex Fridman (1:00:47.180)
How dare they?
Jeff Atwood (1:00:47.720)
I'm like, yes, change the software.
Lex Fridman (1:00:49.520)
Change it all the time, man.
Jeff Atwood (1:00:51.280)
That's what makes this stuff great
Lex Fridman (1:00:52.720)
is that it can be changed so rapidly
Lex Fridman (1:00:55.320)
and become something that is greater than it is now.
Lex Fridman (1:00:58.120)
Now, granted, there are some changes that suck.
Jeff Atwood (1:01:00.040)
I admit.
Lex Fridman (1:01:01.160)
I've seen it many times.
Lex Fridman (1:01:02.240)
But in general, that's what makes software cool, right?
Lex Fridman (1:01:05.040)
It's that it is so malleable.
Jeff Atwood (1:01:06.640)
Fighting that is weird to me.
Lex Fridman (1:01:08.440)
Because it's like, well, you're fighting
Jeff Atwood (1:01:10.120)
the essence of the thing that you're building.
Lex Fridman (1:01:12.200)
That doesn't make sense.
Jeff Atwood (1:01:13.000)
You want to really embrace that.
Lex Fridman (1:01:14.200)
Not to be a hummingbird, but embrace it
Lex Fridman (1:01:16.280)
to a healthy cycle of your heartbeat, right?
Lex Fridman (1:01:18.200)
So you talk about that people really don't change.
Jeff Atwood (1:01:21.040)
It's true.
Lex Fridman (1:01:22.520)
That's why probably a lot of the stuff you write about in your blog
Jeff Atwood (1:01:25.720)
probably will remain true.
Lex Fridman (1:01:27.200)
Well, there's a flip side of the coin.
Jeff Atwood (1:01:28.780)
People don't change.
Lex Fridman (1:01:29.580)
Like, investing and understanding people
Jeff Atwood (1:01:31.640)
is like learning Unix in 1970.
Lex Fridman (1:01:34.840)
Because nothing has changed, right?
Jeff Atwood (1:01:36.960)
All those things you've learned about people
Lex Fridman (1:01:38.880)
will still be valid 34 years from now.
Jeff Atwood (1:01:40.680)
Whereas if you learn the latest JavaScript framework,
Lex Fridman (1:01:43.180)
that's going to be good for like two years, right?
Jeff Atwood (1:01:45.360)
Exactly.
Lex Fridman (1:01:46.720)
But if you look at the future of programming,
Lex Fridman (1:01:49.800)
so there's a people component, but there's also
Lex Fridman (1:01:52.980)
the technology itself.
Lex Fridman (1:01:55.040)
What do you see as the future of programming?
Lex Fridman (1:01:57.320)
Will it change significantly, or as far as you can tell,
Jeff Atwood (1:02:01.840)
people are ultimately programming,
Lex Fridman (1:02:04.800)
and so it's not something that you foresee changing
Lex Fridman (1:02:08.720)
in any fundamental way?
Lex Fridman (1:02:10.040)
Well, you've got to go look back on sort
Jeff Atwood (1:02:12.880)
of the basics of programming.
Lex Fridman (1:02:14.440)
And one of things that always shocked me
Jeff Atwood (1:02:15.520)
is like source control.
Lex Fridman (1:02:16.400)
Like, I didn't learn anything about source control.
Jeff Atwood (1:02:18.680)
Granted, I graduated from college in 1992.
Lex Fridman (1:02:22.400)
But I remember hearing from people as late as like 1998,
Jeff Atwood (1:02:25.800)
1999, like even maybe today, they're
Lex Fridman (1:02:27.760)
not learning source control.
Lex Fridman (1:02:28.960)
And to me, it's like, well, how can you not
Lex Fridman (1:02:30.240)
learn source control?
Jeff Atwood (1:02:31.600)
That is so fundamental to working with other programmers,
Lex Fridman (1:02:34.320)
working in a way that you don't lose your work.
Jeff Atwood (1:02:36.280)
Just basic software, the literal bedrock of software
Lex Fridman (1:02:39.720)
development is source control.
Lex Fridman (1:02:41.280)
Now, you compare it today, like GitHub, right?
Lex Fridman (1:02:42.840)
Like Microsoft bought GitHub, which
Jeff Atwood (1:02:44.080)
I think was an incredibly smart acquisition move
Lex Fridman (1:02:46.000)
on their part.
Jeff Atwood (1:02:47.000)
Now they have anybody who wants reasonable source control
Lex Fridman (1:02:49.880)
to go sign up on GitHub.
Lex Fridman (1:02:50.960)
It's all set up for you, right?
Lex Fridman (1:02:52.440)
There's tons of walkthroughs, tons of tutorials.
Lex Fridman (1:02:55.360)
So from the concept of like, has programming
Lex Fridman (1:02:57.320)
advanced from, say, 1999, it's like, well, hell, we have GitHub.
Lex Fridman (1:03:00.320)
I mean, my god, yes, right?
Lex Fridman (1:03:01.600)
Like, it's massively advanced over what it was.
Jeff Atwood (1:03:04.880)
Now, as to whether programming is significantly different,
Lex Fridman (1:03:08.880)
I'm going to say no.
Lex Fridman (1:03:09.720)
But I think the baseline of what we view as fundamentals
Lex Fridman (1:03:14.560)
will continue to go up and actually get better,
Jeff Atwood (1:03:16.560)
like source control.
Lex Fridman (1:03:17.520)
That's one of the fundamentals that has gotten hundreds
Jeff Atwood (1:03:20.880)
of orders of magnitude better than it was 10, 20 years ago.
Lex Fridman (1:03:23.800)
So those are the fundamentals.
Jeff Atwood (1:03:25.000)
Let me introduce two things that maybe you can comment on.
Lex Fridman (1:03:28.320)
So one is mobile phones.
Lex Fridman (1:03:31.080)
So that could fundamentally transform what programming is,
Lex Fridman (1:03:37.160)
or maybe not.
Jeff Atwood (1:03:38.000)
Maybe you can comment on that.
Lex Fridman (1:03:39.320)
And the other one is artificial intelligence,
Jeff Atwood (1:03:41.560)
which promises to, in some ways, to do
Lex Fridman (1:03:46.560)
some of the programming for you is one way to think about it.
Lex Fridman (1:03:49.600)
So it's really what a programmer is,
Lex Fridman (1:03:52.360)
is using the intelligence that's inside your skull
Jeff Atwood (1:03:55.720)
to do something useful.
Lex Fridman (1:03:57.880)
The hope with artificial intelligence
Jeff Atwood (1:03:59.520)
is that it does some of the useful parts for you
Lex Fridman (1:04:02.080)
where you don't have to think about it.
Lex Fridman (1:04:03.720)
So do you see smartphones, the fact that everybody has one,
Lex Fridman (1:04:07.720)
and they're getting more and more powerful as potentially
Lex Fridman (1:04:10.080)
changing programming?
Lex Fridman (1:04:11.640)
And do you see AI as potentially changing programming?
Jeff Atwood (1:04:14.360)
OK, so that's good.
Lex Fridman (1:04:15.640)
So smartphones have definitely changed.
Jeff Atwood (1:04:17.560)
I mean, since, I guess, 2010 is when they really
Lex Fridman (1:04:20.020)
started getting super popular.
Jeff Atwood (1:04:21.840)
I mean, in the last eight years, the world
Lex Fridman (1:04:24.760)
has literally changed, right?
Jeff Atwood (1:04:25.920)
Everybody carries a computer around, and that's normal.
Lex Fridman (1:04:28.520)
I mean, that is such a huge change in society.
Jeff Atwood (1:04:30.920)
I think we're still dealing with a lot
Lex Fridman (1:04:32.460)
of the positive and negative ramifications of that, right?
Jeff Atwood (1:04:35.260)
Everybody's connected all the time.
Lex Fridman (1:04:36.280)
Everybody's on the computer all the time.
Lex Fridman (1:04:37.980)
That was my dream world as a geek, right?
Lex Fridman (1:04:40.360)
But it's like, be careful what you ask for, right?
Jeff Atwood (1:04:42.560)
Like, wow, now everybody has a computer.
Lex Fridman (1:04:44.200)
It's not quite the utopia that we thought it would be, right?
Jeff Atwood (1:04:47.040)
Computers can be used for a lot of stuff that's not necessarily
Lex Fridman (1:04:49.720)
great.
Lex Fridman (1:04:51.200)
So to me, that's the central focus of the smartphone,
Lex Fridman (1:04:53.160)
is just that it puts a computer in front of everyone.
Jeff Atwood (1:04:55.720)
Granted, a small, touch screen, smallish,
Lex Fridman (1:04:57.800)
touch screen computer.
Lex Fridman (1:04:59.080)
But as for programming, I don't know.
Lex Fridman (1:05:00.560)
I don't think that I've kind of, over time,
Jeff Atwood (1:05:03.080)
come to subscribe to the Unix view of the world
Lex Fridman (1:05:05.360)
when it comes to programming.
Jeff Atwood (1:05:06.600)
You want to teach these basic command line things,
Lex Fridman (1:05:09.960)
and that is just what programming
Jeff Atwood (1:05:11.280)
is going to be for, I think, a long, long time.
Lex Fridman (1:05:14.440)
I don't think there's any magical visual programming
Jeff Atwood (1:05:17.120)
that's going to happen.
Lex Fridman (1:05:20.160)
I don't know.
Jeff Atwood (1:05:20.680)
I've, over time, have become a believer in that Unix
Lex Fridman (1:05:23.180)
philosophy of just, you know, they kind of had
Jeff Atwood (1:05:25.120)
to write with Unix.
Lex Fridman (1:05:26.440)
That's going to be the way it is for a long, long time.
Lex Fridman (1:05:28.960)
And we'll continue to, like I said, raise the baseline.
Lex Fridman (1:05:31.640)
The tools will get better.
Jeff Atwood (1:05:32.440)
It'll get simpler.
Lex Fridman (1:05:33.020)
But it's still fundamentally going
Jeff Atwood (1:05:34.440)
to be command line tools, fancy IDEs.
Lex Fridman (1:05:37.200)
That's kind of it for the foreseeable future.
Jeff Atwood (1:05:39.240)
I'm not seeing any visual programming stuff
Lex Fridman (1:05:41.440)
on the horizon.
Jeff Atwood (1:05:42.240)
Because you kind of think, like, what
Lex Fridman (1:05:43.200)
do you do on a smartphone that will be directly
Lex Fridman (1:05:45.200)
analogous to programming?
Lex Fridman (1:05:46.480)
Like, I'm trying to think, right?
Lex Fridman (1:05:48.240)
And there's really not much.
Lex Fridman (1:05:52.200)
So not necessarily analogous to programming,
Lex Fridman (1:05:55.160)
but the kind of things that, the kind of programs
Lex Fridman (1:06:01.680)
you would need to write might need to be very different.
Jeff Atwood (1:06:07.360)
Yeah.
Lex Fridman (1:06:08.040)
And the kind of languages.
Jeff Atwood (1:06:09.480)
I mean, but I probably also subscribe to the same,
Lex Fridman (1:06:12.400)
just because everything in this world
Jeff Atwood (1:06:14.260)
might be written in JavaScript.
Lex Fridman (1:06:16.200)
Oh, yeah.
Jeff Atwood (1:06:16.720)
That's already happening.
Lex Fridman (1:06:17.760)
I mean, discourse is a bet.
Jeff Atwood (1:06:18.960)
Discourse itself, JavaScript, is another bet
Lex Fridman (1:06:20.840)
on that side of the table.
Lex Fridman (1:06:21.920)
And I still try and believe in that.
Lex Fridman (1:06:23.680)
So I would say smartphones have mostly a cultural shift more
Jeff Atwood (1:06:26.220)
than a programming shift.
Lex Fridman (1:06:27.720)
Now, your other question was about artificial intelligence
Lex Fridman (1:06:30.080)
and sort of devices predicting what you're going to do.
Lex Fridman (1:06:32.760)
And I do think there's some strength to that.
Jeff Atwood (1:06:34.640)
I think artificial intelligence is kind of overselling it
Lex Fridman (1:06:37.040)
in terms of what it's doing.
Lex Fridman (1:06:37.680)
It's more like, people are predictable, right?
Lex Fridman (1:06:39.720)
People do the same things.
Jeff Atwood (1:06:41.120)
Let me give you an example.
Lex Fridman (1:06:43.120)
One check we put in a discourse that's
Jeff Atwood (1:06:44.720)
been a lot of big commercial websites is,
Lex Fridman (1:06:48.280)
say you log in from New York City now.
Lex Fridman (1:06:51.160)
And then an hour later, you log in from San Francisco.
Lex Fridman (1:06:54.200)
It's like, well, hmm, that's interesting.
Lex Fridman (1:06:56.600)
How did you get from New York to San Francisco in one hour?
Lex Fridman (1:06:59.560)
So at that point, you're like, OK, this
Jeff Atwood (1:07:01.220)
is a suspicious login at that point.
Lex Fridman (1:07:02.680)
So we would alert you.
Jeff Atwood (1:07:03.520)
It's like, OK.
Lex Fridman (1:07:04.200)
But that's not AI, right?
Jeff Atwood (1:07:05.360)
That's just a heuristic of like, how did you, in one hour,
Lex Fridman (1:07:09.080)
get 2,000 miles, right?
Jeff Atwood (1:07:10.880)
That doesn't.
Lex Fridman (1:07:11.440)
I mean, you're grand.
Jeff Atwood (1:07:12.040)
Maybe you're on a VPN.
Lex Fridman (1:07:12.680)
There's other ways to happen.
Jeff Atwood (1:07:14.040)
That's just a basic prediction based on the idea
Lex Fridman (1:07:16.040)
that people pretty much don't move around that much.
Jeff Atwood (1:07:19.440)
They may travel occasionally.
Lex Fridman (1:07:20.920)
But nobody, unless you're a traveling salesman that's
Jeff Atwood (1:07:23.160)
literally traveling the world every day,
Lex Fridman (1:07:26.280)
there's so much repetition and predictability
Jeff Atwood (1:07:28.280)
in terms of things you're going to do.
Lex Fridman (1:07:29.740)
And I think good software anticipates your needs.
Jeff Atwood (1:07:32.240)
For example, Google, I think it's
Lex Fridman (1:07:33.560)
called Google Now or whatever that Google thing is
Jeff Atwood (1:07:35.320)
that predicts your commute and predicts,
Lex Fridman (1:07:36.800)
based on your phone location, where are you every day?
Jeff Atwood (1:07:39.200)
Well, that's probably where you work, that kind of stuff.
Lex Fridman (1:07:41.840)
I do think computers can get a lot better at that.
Jeff Atwood (1:07:43.920)
I hesitate to call it full blown AI.
Lex Fridman (1:07:46.320)
It's just computers getting better at like, first of all,
Jeff Atwood (1:07:48.880)
they have a ton of data because everybody has a smartphone.
Lex Fridman (1:07:50.560)
Now, all of a sudden, we have all this data
Jeff Atwood (1:07:52.080)
that we didn't have before about location,
Lex Fridman (1:07:53.880)
about communication, and feeding that into some basic heuristics
Lex Fridman (1:07:59.240)
and maybe some fancy algorithms that turn it
Lex Fridman (1:08:01.080)
into predictions of anticipating your needs,
Lex Fridman (1:08:03.160)
like a friend would, right?
Lex Fridman (1:08:04.520)
Like, oh, hey, I see your home.
Lex Fridman (1:08:06.160)
Would you like some dinner, right?
Lex Fridman (1:08:07.540)
Like, let's go get some food, because that's usually
Lex Fridman (1:08:09.320)
what we do at this time of day, right?
Lex Fridman (1:08:10.840)
In the context of actually the act of programming,
Lex Fridman (1:08:13.680)
do you see IDEs improving and making
Lex Fridman (1:08:15.680)
the life of programming as better?
Jeff Atwood (1:08:17.400)
I do think that is possible, because there's
Lex Fridman (1:08:19.160)
a lot of repetition in programming, right?
Jeff Atwood (1:08:20.760)
Oh, you know, Clippy would be the bad example of, oh, I see.
Lex Fridman (1:08:23.680)
It looks like you're writing a for loop.
Lex Fridman (1:08:25.960)
But there are patterns in code, right?
Lex Fridman (1:08:28.400)
And actually, libraries are kind of like that, right?
Jeff Atwood (1:08:30.880)
Rather than go code up your own HTTP request library,
Lex Fridman (1:08:35.440)
it's like, well, you'd use one of the existing ones
Jeff Atwood (1:08:37.560)
that we have.
Lex Fridman (1:08:38.400)
That's already a troubleshot, right?
Jeff Atwood (1:08:39.800)
It's not AI, per se.
Lex Fridman (1:08:41.440)
It's just building better LEGO bricks, bigger LEGO bricks,
Jeff Atwood (1:08:46.180)
that have more functionality in them,
Lex Fridman (1:08:47.760)
so people don't have to worry about the low level
Jeff Atwood (1:08:49.460)
stuff as much anymore.
Lex Fridman (1:08:50.560)
Like, WordPress, for example, to me,
Jeff Atwood (1:08:52.040)
is like a tool for somebody who isn't a programmer
Lex Fridman (1:08:54.160)
to do something.
Jeff Atwood (1:08:55.800)
I mean, you can turn WordPress into anything.
Lex Fridman (1:08:57.680)
It's kind of crazy, actually, through plugins, right?
Lex Fridman (1:08:59.800)
And that's not programming, per se.
Lex Fridman (1:09:01.400)
It's just LEGO bricks stacking WordPress elements, right?
Lex Fridman (1:09:04.560)
And a little bit of configuration glue.
Lex Fridman (1:09:06.620)
So I would say, maybe in a broader sense, what I'm seeing,
Jeff Atwood (1:09:09.040)
like, there'll be more gluing and less actual programming.
Lex Fridman (1:09:14.200)
And that's a good thing, right?
Jeff Atwood (1:09:15.600)
Because most of the stuff you need
Lex Fridman (1:09:16.720)
is kind of out there already.
Jeff Atwood (1:09:17.960)
You said 1970s, Unix.
Lex Fridman (1:09:20.120)
Do you see PHP and these kind of old remnants
Jeff Atwood (1:09:28.240)
of the early birth of programming
Lex Fridman (1:09:31.760)
remaining with us for a long time?
Jeff Atwood (1:09:33.760)
Like you said, Unix in itself.
Lex Fridman (1:09:35.640)
Do you see, ultimately, this stuff just being there
Lex Fridman (1:09:41.120)
out of momentum?
Lex Fridman (1:09:42.940)
I kind of do.
Jeff Atwood (1:09:44.160)
I mean, I was a big believer in Windows early on.
Lex Fridman (1:09:46.200)
And I was a big, you know, I was like,
Jeff Atwood (1:09:47.400)
Unix, what a waste of time.
Lex Fridman (1:09:48.780)
But over time, I've completely flipped on that,
Jeff Atwood (1:09:50.120)
where I was like, okay, the Unix guys were right.
Lex Fridman (1:09:51.720)
And pretty much Microsoft and Windows were kind of wrong,
Jeff Atwood (1:09:54.640)
at least on the server side.
Lex Fridman (1:09:55.760)
Now, on the desktop, right, you need a GUI,
Jeff Atwood (1:09:57.400)
you need all that stuff.
Lex Fridman (1:09:58.240)
And you have the two philosophies,
Jeff Atwood (1:09:59.200)
like Apple built on Unix, effectively, Darwin.
Lex Fridman (1:10:02.680)
And on the desktop, it's a slightly different story.
Lex Fridman (1:10:04.600)
But on the server side, where you're gonna be programming.
Lex Fridman (1:10:07.000)
Now, it's a question of where the programming's gonna be.
Jeff Atwood (1:10:08.480)
There's gonna be a lot more like client side programming,
Lex Fridman (1:10:10.760)
because technically, discourse is client side programming.
Jeff Atwood (1:10:13.620)
The way you get discourse,
Lex Fridman (1:10:14.520)
we deliver a big ball of JavaScript,
Jeff Atwood (1:10:16.200)
which is then executed locally.
Lex Fridman (1:10:18.260)
So we're really using a lot more local computing power.
Jeff Atwood (1:10:20.980)
We'll still retrieve the data, obviously,
Lex Fridman (1:10:22.360)
we have to display the posts on the screen and so forth.
Lex Fridman (1:10:24.320)
But in terms of like sorting and a lot of the basic stuff,
Lex Fridman (1:10:27.040)
we're using the host processor.
Lex Fridman (1:10:29.480)
But to the extent that a lot of programming
Lex Fridman (1:10:31.280)
is still gonna be server side, I would say, yeah,
Jeff Atwood (1:10:33.680)
the Unix philosophy definitely won.
Lex Fridman (1:10:35.320)
And there'll be different veneers over Unix,
Lex Fridman (1:10:38.640)
but it's still, if you peel away one or two layers,
Lex Fridman (1:10:40.800)
it's gonna be Unixy for a long, I think Unix won.
Jeff Atwood (1:10:44.340)
I mean, so definitively.
Lex Fridman (1:10:45.520)
It's interesting to hear you say that,
Jeff Atwood (1:10:47.440)
because you've done so much excellent work
Lex Fridman (1:10:49.080)
on the Microsoft side in terms of backend development.
Jeff Atwood (1:10:52.840)
Cool.
Lex Fridman (1:10:53.680)
So what's the future hold for Jeff Atwood?
Jeff Atwood (1:10:56.960)
I mean, the discourse, continuing the discourse
Lex Fridman (1:11:01.820)
in trying to improve conversation on the web?
Jeff Atwood (1:11:03.960)
Well, discourse is what I've viewed as a,
Lex Fridman (1:11:05.640)
and originally I called it a five year project,
Jeff Atwood (1:11:07.040)
then really quickly revised that to a 10 year project.
Lex Fridman (1:11:08.800)
So we started in early 2013,
Jeff Atwood (1:11:12.280)
that's when we launched the first version.
Lex Fridman (1:11:13.640)
So we're still five years in.
Jeff Atwood (1:11:16.120)
This is the part where it starts getting good.
Lex Fridman (1:11:17.400)
Like we have a good product now.
Jeff Atwood (1:11:18.540)
Discourse, there's any project you build in software,
Lex Fridman (1:11:21.760)
it takes three years to build what you want it
Jeff Atwood (1:11:23.280)
to build anyway.
Lex Fridman (1:11:24.100)
Like V1 is gonna be terrible, which it was.
Lex Fridman (1:11:26.560)
But you ship it anyway,
Lex Fridman (1:11:27.400)
because that's how you get better at stuff.
Jeff Atwood (1:11:29.000)
It's about turning the crank.
Lex Fridman (1:11:29.920)
It's not about V1 being perfect,
Jeff Atwood (1:11:31.400)
because that's ridiculous.
Lex Fridman (1:11:32.800)
It's about V1, then let's get really good at V1.1,
Lex Fridman (1:11:35.560)
1.2, 1.3, like how fast can we iterate?
Lex Fridman (1:11:38.000)
And I think we're iterating like crazy on discourse,
Jeff Atwood (1:11:40.120)
to the point that like, it's a really good product now.
Lex Fridman (1:11:41.920)
We have serious momentum.
Lex Fridman (1:11:44.640)
And my original vision was,
Lex Fridman (1:11:46.240)
I wanna be the WordPress of discussion.
Jeff Atwood (1:11:48.120)
Meaning someone came to you and said,
Lex Fridman (1:11:49.860)
I wanna start a blog.
Jeff Atwood (1:11:50.760)
Although the very question is kind of archaic now.
Lex Fridman (1:11:53.000)
It's like, who actually blogs anymore?
Lex Fridman (1:11:55.320)
But I wanted the answer to that to be,
Lex Fridman (1:11:59.000)
it would be WordPress normally,
Jeff Atwood (1:12:01.360)
because that's the obvious choice
Lex Fridman (1:12:02.240)
for blogging most of the time.
Lex Fridman (1:12:04.200)
But if someone said, hey, I need a group of people
Lex Fridman (1:12:06.960)
to get together and do something,
Lex Fridman (1:12:08.760)
the answer should be discourse, right?
Lex Fridman (1:12:10.400)
That should be the default answer for people.
Jeff Atwood (1:12:11.800)
Because it's open source, it's free,
Lex Fridman (1:12:13.360)
doesn't cost you anything.
Jeff Atwood (1:12:14.200)
You control it, you can run it.
Lex Fridman (1:12:15.960)
Your minimum server cost for discourse
Jeff Atwood (1:12:17.400)
is five bucks a month at this point.
Lex Fridman (1:12:19.560)
They actually got the VPS prices down.
Jeff Atwood (1:12:21.560)
It used to be $10 a month for one gigabyte of RAM,
Lex Fridman (1:12:23.860)
which we have a kind of heavy stack.
Jeff Atwood (1:12:28.400)
Like there's a lot of stuff in discourse.
Lex Fridman (1:12:30.280)
You need Postgres, you need Redis, you need Ruby,
Lex Fridman (1:12:32.520)
and Rails, you need a sidekick for scheduling.
Lex Fridman (1:12:35.760)
It's not a trivial amount of stuff
Jeff Atwood (1:12:36.960)
because we were architected for like,
Lex Fridman (1:12:38.040)
look, we're building for the next 10 years.
Jeff Atwood (1:12:39.460)
I don't care about shared PHP hosting.
Lex Fridman (1:12:41.960)
That's not my model.
Jeff Atwood (1:12:44.160)
My idea is like, hey, eventually,
Lex Fridman (1:12:45.880)
this is gonna be very cheap for everybody
Lex Fridman (1:12:47.480)
and I wanna build it right.
Lex Fridman (1:12:49.120)
Using again, higher, bigger building block levels, right?
Jeff Atwood (1:12:53.460)
That have more requirements.
Lex Fridman (1:12:54.440)
And there's a WordPress model of WordPress.org,
Jeff Atwood (1:12:56.600)
WordPress.com.
Lex Fridman (1:12:57.680)
Is there a central hosting for discourse or no?
Jeff Atwood (1:13:00.960)
There is.
Lex Fridman (1:13:01.800)
We're not strictly segmenting into the open source
Jeff Atwood (1:13:03.600)
versus the commercial side.
Lex Fridman (1:13:05.080)
We have a hosting business.
Jeff Atwood (1:13:06.000)
That's how discourse makes money
Lex Fridman (1:13:07.080)
is we host discourse instances
Lex Fridman (1:13:08.840)
and we have really close relationship with our customers
Lex Fridman (1:13:10.640)
of the symbiosis of them giving us feedback on the product.
Jeff Atwood (1:13:14.640)
We definitely wait feedback from customers
Lex Fridman (1:13:16.440)
a lot heavier than feedback from somebody
Jeff Atwood (1:13:18.360)
who just wanders by and gives feedback.
Lex Fridman (1:13:20.880)
But that's where we make all our money.
Lex Fridman (1:13:22.440)
But we don't have a strict division.
Lex Fridman (1:13:24.600)
We encourage people to use discourse.
Lex Fridman (1:13:26.600)
Like the whole point is that it's free, right?
Lex Fridman (1:13:29.040)
Anybody can set it up.
Jeff Atwood (1:13:29.960)
I don't wanna be the only person that hosts discourse.
Lex Fridman (1:13:32.600)
That's absolutely not the goal.
Lex Fridman (1:13:34.200)
But it is a primary way for us to build a business
Lex Fridman (1:13:36.280)
and it's actually kind of a great business.
Jeff Atwood (1:13:37.600)
I mean, the business is going really, really well
Lex Fridman (1:13:40.280)
in terms of hosting.
Lex Fridman (1:13:41.340)
So I used to work at Google Research.
Lex Fridman (1:13:44.280)
It's a company that's basically funded on advertisements.
Lex Fridman (1:13:47.040)
So it's Facebook.
Lex Fridman (1:13:48.120)
Let me ask if you can comment on it.
Jeff Atwood (1:13:50.360)
I think advertisement is best.
Lex Fridman (1:13:53.500)
So you'd be extremely critical on what ads are
Lex Fridman (1:13:56.580)
but at its best, it's actually serving you.
Lex Fridman (1:13:59.700)
In a sense, it's giving you, it's connecting you
Jeff Atwood (1:14:02.000)
to what you would want to explore.
Lex Fridman (1:14:05.640)
So it's like related posts or related content.
Jeff Atwood (1:14:08.040)
It's the same, that's the best of advertisement.
Lex Fridman (1:14:10.200)
So discourse is connecting people based on their interests.
Jeff Atwood (1:14:16.040)
It seems like a place where advertisement at its best
Lex Fridman (1:14:20.080)
could actually serve the users.
Jeff Atwood (1:14:21.740)
Is that something that you're considering thinking about
Lex Fridman (1:14:24.880)
as a way to bring, to financially support the platform?
Jeff Atwood (1:14:29.440)
That's interesting because I actually have
Lex Fridman (1:14:31.360)
a contrarian view of advertising,
Jeff Atwood (1:14:32.560)
which I kind of agree with you.
Lex Fridman (1:14:33.760)
I recently installed AdBlocker reluctantly
Jeff Atwood (1:14:36.800)
because I don't like to do that.
Lex Fridman (1:14:38.280)
But the performance of the ads, man,
Jeff Atwood (1:14:40.580)
they're so heavy now and it's just crazy.
Lex Fridman (1:14:43.280)
So it's almost like a performance argument
Jeff Atwood (1:14:45.040)
more than like, I actually am pro ads
Lex Fridman (1:14:47.200)
and I have a contrarian viewpoint.
Jeff Atwood (1:14:49.480)
I agree with you.
Lex Fridman (1:14:50.320)
If you do ads right, it's serving you stuff
Jeff Atwood (1:14:51.960)
you would be interested in anyway.
Lex Fridman (1:14:53.300)
I don't mind that, that actually is kind of a good thing.
Lex Fridman (1:14:56.520)
So plus I think it's rational to wanna support
Lex Fridman (1:15:00.000)
the people that are doing this work
Jeff Atwood (1:15:01.680)
through seeing their ads.
Lex Fridman (1:15:02.600)
But that said, I run AdBlock now,
Jeff Atwood (1:15:04.040)
which I didn't wanna do, but I was convinced
Lex Fridman (1:15:07.520)
by all these articles, like 30, 40 megabytes of stuff
Jeff Atwood (1:15:10.080)
just to serve you ads.
Lex Fridman (1:15:12.480)
Yeah, it feels like ads now are like the experts exchange
Jeff Atwood (1:15:15.980)
of whenever you start a stock overflow.
Lex Fridman (1:15:18.240)
It's a little bit, it's overwhelming.
Jeff Atwood (1:15:19.440)
Oh, there's so many companies in ad tech
Lex Fridman (1:15:21.040)
that it's embarrassing.
Jeff Atwood (1:15:21.880)
Like you can do that, have you seen those logo charts
Lex Fridman (1:15:23.180)
of like just the whole page?
Jeff Atwood (1:15:24.280)
It's like you can't even see them, they're so small.
Lex Fridman (1:15:26.200)
There's so many companies in the space.
Lex Fridman (1:15:27.800)
But since you brought it up, I do wanna point out
Lex Fridman (1:15:29.640)
that very, very few discourse sites actually run
Jeff Atwood (1:15:31.840)
using an ad supported model.
Lex Fridman (1:15:33.080)
It's not effective.
Jeff Atwood (1:15:34.680)
Like it's too diluted, it's too weird,
Lex Fridman (1:15:37.600)
it doesn't pay well, and like users hate it.
Lex Fridman (1:15:40.560)
So it's a combination of like users hate it,
Lex Fridman (1:15:42.800)
it doesn't actually work that well in practice.
Jeff Atwood (1:15:44.440)
Like in theory, yes, I agree with you.
Lex Fridman (1:15:45.760)
If you had clean, fast ads that were exactly
Jeff Atwood (1:15:48.400)
the stuff you would be interested in, awesome.
Lex Fridman (1:15:50.320)
We're so far from that though, right?
Jeff Atwood (1:15:52.440)
Like, and Google does an okay job.
Lex Fridman (1:15:53.800)
They do retargeting and stuff like that,
Lex Fridman (1:15:55.380)
but in the real world, discourse sites
Lex Fridman (1:15:59.280)
rarely can make ads work.
Jeff Atwood (1:16:01.020)
It just doesn't work for so many reasons.
Lex Fridman (1:16:03.020)
But you know what does work is subscriptions,
Jeff Atwood (1:16:05.600)
Patreon, affiliate codes for like Amazon,
Lex Fridman (1:16:10.660)
of like just, oh, here's a cool yo yo, click,
Lex Fridman (1:16:13.080)
and then you click and go to Amazon,
Lex Fridman (1:16:14.360)
they get a small percentage of that,
Jeff Atwood (1:16:15.680)
which is fair, I think.
Lex Fridman (1:16:17.120)
I mean, because you saw the yo yo on that site
Lex Fridman (1:16:19.120)
and you clicked through and you bought it, right?
Lex Fridman (1:16:21.080)
That's fair for them to get 5% of that
Jeff Atwood (1:16:22.560)
or 2% of that, whatever it is.
Lex Fridman (1:16:24.200)
Those things definitely work.
Jeff Atwood (1:16:25.960)
In fact, a site that I used to participate on a lot,
Lex Fridman (1:16:28.580)
I helped the owner.
Jeff Atwood (1:16:29.880)
One of the things, I got them to switch to discourse.
Lex Fridman (1:16:32.440)
I basically paid them to switch to discourse
Jeff Atwood (1:16:34.200)
because I was like, look, you guys got to switch.
Lex Fridman (1:16:35.320)
I can't come here anymore on this terrible software.
Lex Fridman (1:16:38.520)
But I was like, look, and on top of that,
Lex Fridman (1:16:40.120)
like you're serving people ads that they hate.
Jeff Atwood (1:16:42.280)
Like you should just go full on Patreon
Lex Fridman (1:16:43.920)
because he had a little bit of Patreon.
Jeff Atwood (1:16:45.320)
Go full on Patreon, do the Amazon affiliates thing
Lex Fridman (1:16:49.720)
for any Amazon links that get posted and just do that
Lex Fridman (1:16:51.960)
and just triple down on that stuff.
Lex Fridman (1:16:53.600)
And that's worked really well for them
Lex Fridman (1:16:55.320)
and this creator in particular.
Lex Fridman (1:16:56.780)
So that stuff works, but traditional ads,
Jeff Atwood (1:16:59.480)
I mean, definitely not working, at least on discourse.
Lex Fridman (1:17:01.720)
So last question.
Jeff Atwood (1:17:03.400)
You've created the code keyboard.
Lex Fridman (1:17:05.920)
I've programmed most of my adult life on a Kinesis keyboard.
Jeff Atwood (1:17:09.860)
I have one upstairs now.
Lex Fridman (1:17:12.080)
Can you describe what a mechanical keyboard is
Lex Fridman (1:17:14.520)
and why is it something that makes you happy?
Lex Fridman (1:17:16.720)
Well, you know, this is another fetish item, really.
Jeff Atwood (1:17:18.800)
Like, it's not required.
Lex Fridman (1:17:20.160)
You can do programming on any kind of keyboard,
Jeff Atwood (1:17:22.240)
even like an onscreen keyboard.
Lex Fridman (1:17:23.880)
Oh, god, that's terrifying.
Lex Fridman (1:17:25.960)
But you could.
Lex Fridman (1:17:27.000)
I mean, if you look back at the early days of computing,
Jeff Atwood (1:17:28.760)
there were chiclet keyboards, which are awful.
Lex Fridman (1:17:31.400)
But what's a chiclet keyboard?
Jeff Atwood (1:17:32.520)
Oh, god.
Lex Fridman (1:17:33.120)
OK, well, it's just like thin rubber membranes.
Jeff Atwood (1:17:36.200)
Oh, the rubber ones, oh, no.
Lex Fridman (1:17:37.680)
Super bad, right?
Lex Fridman (1:17:38.840)
So it's a fetish item.
Lex Fridman (1:17:40.360)
All that really says is, look, I care really about keyboards
Jeff Atwood (1:17:43.280)
because the keyboard is the primary method of communication
Lex Fridman (1:17:45.080)
with the computer.
Lex Fridman (1:17:46.240)
So it's just like having a nice mic for this podcast.
Lex Fridman (1:17:49.320)
You want a nice keyboard, right?
Jeff Atwood (1:17:50.600)
Because it has a very tactile feel.
Lex Fridman (1:17:52.200)
I can tell exactly when I press the key.
Jeff Atwood (1:17:54.040)
I get that little click.
Lex Fridman (1:17:55.080)
So, oh, and it feels good.
Lex Fridman (1:17:56.480)
And it's also kind of a fetish item.
Lex Fridman (1:17:57.980)
It's like, wow, I care enough about programming
Jeff Atwood (1:18:00.320)
that I care about the tool, the primary tool,
Lex Fridman (1:18:02.440)
that I use to communicate with the computer,
Jeff Atwood (1:18:03.320)
make sure it's as good as it feels good to use for me.
Lex Fridman (1:18:06.440)
And I can be very productive with it.
Lex Fridman (1:18:08.360)
So to be honest, it's a little bit of a fetish item,
Lex Fridman (1:18:10.720)
but a good one.
Jeff Atwood (1:18:11.320)
It indicates that you're serious.
Lex Fridman (1:18:12.560)
It indicates you're interested.
Jeff Atwood (1:18:13.640)
It indicates that you care about the fundamentals.
Lex Fridman (1:18:15.280)
Because you know what makes you a good programmer?
Lex Fridman (1:18:17.520)
Being able to type really fast, right?
Lex Fridman (1:18:19.360)
This is true, right?
Lex Fridman (1:18:20.600)
So a core skill is just being able to type fast enough
Lex Fridman (1:18:23.480)
to get your ideas out of your head into the code base.
Lex Fridman (1:18:26.120)
So just practicing your typing can make you
Lex Fridman (1:18:28.400)
a better programmer.
Jeff Atwood (1:18:29.760)
It is also something that makes you,
Lex Fridman (1:18:33.720)
well, makes you enjoy typing, correct?
Jeff Atwood (1:18:36.640)
The actual act, something about the process.
Lex Fridman (1:18:39.940)
Like I play piano.
Jeff Atwood (1:18:41.220)
It's tactile.
Lex Fridman (1:18:42.060)
There's a tactile feel that ultimately feeds the passion,
Jeff Atwood (1:18:46.200)
makes you happy.
Lex Fridman (1:18:47.000)
Right.
Jeff Atwood (1:18:47.400)
No, totally.
Lex Fridman (1:18:47.840)
That's it.
Jeff Atwood (1:18:48.160)
I mean, and it's funny because artisanal keyboards have
Lex Fridman (1:18:50.000)
exploded.
Jeff Atwood (1:18:50.640)
Like Massdrop has gone ballistic with this stuff.
Lex Fridman (1:18:53.400)
There's probably like 500 keyboard projects
Jeff Atwood (1:18:55.560)
on Massdrop alone.
Lex Fridman (1:18:56.520)
And there's some other guy I follow on Twitter.
Jeff Atwood (1:18:58.120)
I used to write for the site The Tech Report way
Lex Fridman (1:19:00.400)
back in the day.
Lex Fridman (1:19:01.360)
And he's like, every week he's just
Lex Fridman (1:19:02.440)
posting what I call keyboard porn of just cool keyboards.
Lex Fridman (1:19:05.000)
Like, oh my god, those look really cool, right?
Lex Fridman (1:19:07.160)
It's like, how many keyboards does this guy have, right?
Jeff Atwood (1:19:09.760)
It's kind of like me with yo yos.
Lex Fridman (1:19:10.680)
How many yo yos do you have?
Lex Fridman (1:19:11.480)
How many do you need?
Lex Fridman (1:19:12.320)
Well, technically one, but I like a lot.
Jeff Atwood (1:19:14.880)
I don't know why.
Lex Fridman (1:19:15.800)
So same thing with keyboards.
Lex Fridman (1:19:17.200)
So yeah, they're awesome.
Lex Fridman (1:19:18.880)
Like, I highly recommend anybody that
Jeff Atwood (1:19:20.720)
doesn't have a mechanical to research it, look into it,
Lex Fridman (1:19:23.040)
and see what you like.
Lex Fridman (1:19:24.360)
And it's ultimately a fetish item.
Lex Fridman (1:19:26.260)
But I think these sort of items, these religious artifacts
Jeff Atwood (1:19:30.120)
that we have, are part of what make us human.
Lex Fridman (1:19:32.160)
Like, that part's important, right?
Jeff Atwood (1:19:33.800)
It's kind of what makes life worth living.
Lex Fridman (1:19:35.720)
Yeah.
Jeff Atwood (1:19:37.000)
It's not necessary in the strictest sense,
Lex Fridman (1:19:38.840)
but ain't nothing necessary if you think about it, right?
Lex Fridman (1:19:42.280)
Like, so yeah, why not?
Lex Fridman (1:19:44.240)
So sure.
Jeff Atwood (1:19:45.320)
Jeff, thank you so much for talking today.
Lex Fridman (1:19:47.440)
Yeah, you're welcome.
Jeff Atwood (1:19:48.280)
Thanks for having me.
Lex Fridman (20:02.560)
I mean, they've been running for a long time.
Jeff Atwood (20:04.160)
It's still an extremely rich source of information.
Lex Fridman (20:06.800)
So what's broken about that system
Lex Fridman (20:09.680)
and how are you trying to fix it?
Lex Fridman (20:12.120)
I think there's a lot of power in connecting people
Jeff Atwood (20:15.840)
that love the same stuff around that specific topic.
Lex Fridman (20:19.120)
Meaning Facebook's idea of connection is
Lex Fridman (20:22.120)
just any human that's related to another human, right?
Lex Fridman (20:24.520)
Like through friendship or any other reason.
Jeff Atwood (20:27.440)
Facebook's idea of the world
Lex Fridman (20:28.720)
is sort of the status update, right?
Jeff Atwood (20:30.400)
Like a friend of yours did something,
Lex Fridman (20:32.440)
ate at a restaurant, right?
Jeff Atwood (20:34.960)
Whereas discussion forums were traditionally
Lex Fridman (20:37.200)
around the interest graph.
Jeff Atwood (20:38.240)
Like I love electric cars,
Lex Fridman (20:40.280)
specifically I love Tesla, right?
Jeff Atwood (20:41.920)
Like I love the way they approach the problem.
Lex Fridman (20:44.240)
I love the style of the founder.
Jeff Atwood (20:45.840)
I just love the design ethic.
Lex Fridman (20:48.120)
And there's a lot to like about Tesla.
Jeff Atwood (20:49.200)
I don't know if you saw the oatmeal,
Lex Fridman (20:50.160)
he did a whole love comic to Tesla.
Lex Fridman (20:53.040)
And it was actually kind of cool
Lex Fridman (20:53.880)
because I learned some stuff.
Jeff Atwood (20:54.720)
He was talking about how great Tesla cars were specifically,
Lex Fridman (20:56.960)
like how they were built differently.
Lex Fridman (20:58.280)
And he went into a lot of great detail
Lex Fridman (20:59.800)
that was really interesting.
Lex Fridman (21:00.640)
And to me, that oatmeal post, if you read it,
Lex Fridman (21:02.600)
is the genesis of pretty much all interest communities.
Jeff Atwood (21:05.720)
I just really love this stuff.
Lex Fridman (21:06.960)
So like for me, for example, there's yo yos, right?
Jeff Atwood (21:08.400)
Like I'm into the yo yo communities.
Lex Fridman (21:09.680)
And these interest communities
Jeff Atwood (21:11.720)
are just really fascinating to me.
Lex Fridman (21:12.920)
And I feel more connected to the yo yo communities
Lex Fridman (21:15.200)
than I do to friends that I don't see that often, right?
Lex Fridman (21:18.600)
Like to me, the powerful thing is the interest graph.
Lex Fridman (21:21.720)
And Facebook kind of dabbles in the interest graph.
Lex Fridman (21:25.000)
I mean, they have groups,
Jeff Atwood (21:25.920)
you can sign up for groups and stuff,
Lex Fridman (21:26.960)
but it's really about the relationship graph.
Jeff Atwood (21:29.440)
Like this is my coworker, this is my relative,
Lex Fridman (21:32.080)
this is my friend, but not so much about the interest.
Lex Fridman (21:35.280)
So I think that's the linchpin
Lex Fridman (21:36.920)
of which forums and communities are built on
Jeff Atwood (21:39.200)
that I personally love.
Lex Fridman (21:40.320)
Like I said, leadership is about passion, right?
Lex Fridman (21:44.240)
And being passionate about stuff
Lex Fridman (21:45.520)
is a really valid way to look at the world.
Lex Fridman (21:47.520)
And I think it's a way a lot of stuff in the world
Lex Fridman (21:50.560)
gets done.
Jeff Atwood (21:51.400)
Like I once had someone describe me as,
Lex Fridman (21:52.880)
he's like, Jeff, you're a guy who,
Jeff Atwood (21:54.640)
you just get super passionate about a few things at a time,
Lex Fridman (21:57.560)
and you just go super deep in those things.
Lex Fridman (21:59.760)
And I was like, oh, that's kind of right.
Lex Fridman (22:00.720)
That's kind of what I do.
Jeff Atwood (22:01.560)
I get into something and just be super into that
Lex Fridman (22:03.400)
for a couple of years or whatever,
Lex Fridman (22:04.560)
and just learn all I can about it,
Lex Fridman (22:05.960)
and go super deep in it.
Lex Fridman (22:07.800)
And that's how I enjoy experiencing the world, right?
Lex Fridman (22:11.000)
Like not being shallow on a bunch of things,
Lex Fridman (22:12.400)
but being really deep on a few things
Lex Fridman (22:14.320)
that I'm interested in.
Lex Fridman (22:15.360)
So forums kind of unlock that, right?
Lex Fridman (22:17.200)
And you don't want a world
Jeff Atwood (22:18.920)
where everything belongs to Facebook, at least I don't.
Lex Fridman (22:20.920)
I want a world where communities can kind of own themselves,
Jeff Atwood (22:22.760)
set their own norms, set their own rules,
Lex Fridman (22:25.120)
control the experience.
Lex Fridman (22:26.320)
Because community is also about ownership, right?
Lex Fridman (22:28.720)
Like if you're meeting at the Barnes and Noble every Thursday
Lex Fridman (22:32.160)
and Barnes and Noble says, get out of here,
Lex Fridman (22:33.440)
you guys don't buy enough books.
Lex Fridman (22:34.600)
Well, you know, you're kind of hosed, right?
Lex Fridman (22:36.640)
Barnes and Noble owns you, right?
Jeff Atwood (22:37.880)
Like you can't.
Lex Fridman (22:38.880)
But if you have your own meeting space,
Jeff Atwood (22:40.320)
you know, your own clubhouse,
Lex Fridman (22:41.440)
you can set your own rules,
Jeff Atwood (22:43.040)
decide what you want to talk about there,
Lex Fridman (22:44.560)
and just really generate a lot better information
Jeff Atwood (22:47.800)
than you could like hanging out at Barnes and Noble
Lex Fridman (22:49.520)
every Thursday at 3 p.m., right?
Lex Fridman (22:51.920)
So that's kind of the vision of Discourse,
Lex Fridman (22:53.840)
is a place where it's fully open source.
Jeff Atwood (22:57.160)
You can take the software, you can install it anywhere,
Lex Fridman (22:59.160)
and, you know, you and a group of people
Jeff Atwood (23:00.920)
can go deep on whatever it is that you're into.
Lex Fridman (23:02.880)
And this works for startups, right?
Jeff Atwood (23:04.440)
Startups are a group of people
Lex Fridman (23:05.960)
who go super deep on a specific problem, right?
Lex Fridman (23:08.440)
And they want to talk to the community.
Lex Fridman (23:09.600)
It's like, well, install Discourse, right?
Jeff Atwood (23:11.040)
That's what we do at Discourse.
Lex Fridman (23:12.040)
That's what I did at Stack Overflow.
Jeff Atwood (23:13.560)
I spent a lot of time on Meta Stack Overflow,
Lex Fridman (23:15.520)
which is our internal, well, public community feedback site,
Lex Fridman (23:20.200)
and just experiencing what the users were experiencing,
Lex Fridman (23:24.000)
right, because they're the ones
Jeff Atwood (23:24.840)
doing all the work in the system.
Lex Fridman (23:26.080)
And they had a lot of interesting feedback.
Lex Fridman (23:27.600)
And there's that 90, 10 rule of, like,
Lex Fridman (23:29.240)
90% of the feedback you get is not really actionable
Jeff Atwood (23:31.640)
for a variety of reasons.
Lex Fridman (23:32.480)
It might be bad feedback, it might be crazy feedback,
Jeff Atwood (23:34.640)
it might be feedback you just can't act on right now.
Lex Fridman (23:36.400)
But there's 10% of it that's like gold.
Jeff Atwood (23:38.320)
It's like literally gold and diamonds,
Lex Fridman (23:39.760)
where it's like feedback of really good improvements
Jeff Atwood (23:42.440)
to your core product that are not super hard to get to
Lex Fridman (23:44.800)
and actually make a lot of sense.
Lex Fridman (23:45.800)
And my favorite is about 5% of those stuff
Lex Fridman (23:47.800)
I didn't even see coming.
Jeff Atwood (23:48.680)
It's like, oh my God, I never even thought of that.
Lex Fridman (23:50.480)
But that's a brilliant idea, right?
Lex Fridman (23:52.560)
And I can point to so many features of Stack Overflow
Lex Fridman (23:54.560)
that we derive from Meta Stack Overflow feedback
Lex Fridman (23:56.680)
and Meta discourse, right?
Lex Fridman (23:58.000)
Same exact principle of discourse, you know?
Jeff Atwood (24:01.220)
We're getting ideas from the community.
Lex Fridman (24:02.060)
I was like, oh my God, I never thought of that,
Lex Fridman (24:03.440)
but that's fantastic, right?
Lex Fridman (24:04.640)
Like, I love that relationship with the community.
Jeff Atwood (24:06.920)
From having built these communities,
Lex Fridman (24:08.680)
what have you learned about?
Jeff Atwood (24:11.080)
What's the process of getting a critical mass of members
Lex Fridman (24:13.320)
in a community?
Lex Fridman (24:14.160)
Is it luck, skill, timing, persistence?
Lex Fridman (24:17.000)
What is, is it the tools, like discourse,
Lex Fridman (24:20.340)
that empower that community?
Lex Fridman (24:21.840)
What's the key aspect of starting for one guy or gal
Lex Fridman (24:25.840)
and then building it to two and then 10
Lex Fridman (24:27.720)
and a hundred and a thousand and so on?
Jeff Atwood (24:29.960)
I think when you're starting with an N of one,
Lex Fridman (24:32.280)
I mean, I think it's persistence
Lex Fridman (24:33.880)
and also you have to be interesting.
Lex Fridman (24:37.000)
Like somebody I really admire once said something
Jeff Atwood (24:39.040)
that I always liked about blogging.
Lex Fridman (24:40.160)
He's like, here's how you blog.
Jeff Atwood (24:41.800)
You have to have something interesting to say
Lex Fridman (24:44.400)
and have an interesting way of saying it, right?
Lex Fridman (24:46.920)
And then do that for like 10 years.
Lex Fridman (24:49.880)
So that's the genesis,
Jeff Atwood (24:50.920)
is like you have to have sort of something interesting
Lex Fridman (24:53.280)
to say that's not exactly what everybody else is saying
Lex Fridman (24:55.260)
and an interesting way of saying it,
Lex Fridman (24:56.360)
which is another way of saying,
Jeff Atwood (24:57.260)
kind of entertaining way of saying it.
Lex Fridman (24:59.240)
And then as far as growing it, it's like ritual.
Jeff Atwood (25:01.920)
You know, like you have to, like say you're starting a blog,
Lex Fridman (25:04.240)
you have to say, look, I'm gonna blog every week,
Jeff Atwood (25:06.680)
three times a week,
Lex Fridman (25:07.960)
and you have to stick to that schedule, right?
Jeff Atwood (25:09.940)
Because until you do that for like several years,
Lex Fridman (25:12.840)
you're never gonna get anywhere.
Jeff Atwood (25:14.360)
Like it just takes years to get to where you need to get to.
Lex Fridman (25:16.680)
And part of that is having the discipline
Jeff Atwood (25:18.680)
to stick with the schedule.
Lex Fridman (25:19.720)
And it helps, again, if it's something you're passionate
Jeff Atwood (25:21.440)
about, this won't feel like work.
Lex Fridman (25:22.720)
You're like, I love this.
Lex Fridman (25:23.560)
I could talk about this all day, every day, right?
Lex Fridman (25:26.840)
You just have to do it in a way
Jeff Atwood (25:27.680)
that's interesting to other people.
Lex Fridman (25:28.640)
And then as you're growing the community,
Jeff Atwood (25:30.640)
that pattern of participation within the community
Lex Fridman (25:32.480)
of like generating these artifacts
Lex Fridman (25:34.320)
and inviting other people to help you
Lex Fridman (25:35.720)
like collaborate on these artifacts,
Jeff Atwood (25:36.960)
like even in the case of blogging,
Lex Fridman (25:38.280)
like I felt in the early days of my blog,
Jeff Atwood (25:40.880)
which I started in 2004,
Lex Fridman (25:41.960)
which is really the genesis of Stack Overflow.
Jeff Atwood (25:43.760)
If you look at all my blog, it leads up to Stack Overflow,
Lex Fridman (25:46.280)
which was, I have all this energy in my blog,
Lex Fridman (25:48.440)
but I don't, like 40,000 people were subscribing to me.
Lex Fridman (25:51.320)
And I was like, I wanna do something.
Lex Fridman (25:52.440)
And then I met Joel and said, hey, Joel,
Lex Fridman (25:54.160)
I wanna do something,
Jeff Atwood (25:55.320)
take this ball of energy from my blog and do something.
Lex Fridman (25:57.360)
And all the people reading my blog saw that.
Jeff Atwood (25:58.800)
It's like, oh, cool.
Lex Fridman (25:59.800)
You're involving us.
Jeff Atwood (26:00.640)
You're saying, look, you're part of this community.
Lex Fridman (26:03.360)
Let's build this thing together.
Jeff Atwood (26:04.560)
Like they pick the name.
Lex Fridman (26:05.520)
Like we voted on the name for Stack Overflow on my blog.
Jeff Atwood (26:08.040)
Like we came up, and naming is super hard.
Lex Fridman (26:09.960)
First of all, the hardest problem in computer science
Lex Fridman (26:12.240)
is coming up with a good name for stuff, right?
Lex Fridman (26:14.520)
But you can go back to my blog.
Jeff Atwood (26:15.880)
There's the poll where we voted
Lex Fridman (26:17.640)
and Stack Overflow became the name of the site.
Lex Fridman (26:19.240)
And all the early beta users of Stack Overflow
Lex Fridman (26:21.160)
were audience of my blog plus Joel's blog, right?
Lex Fridman (26:24.600)
So we started from, like, if you look at the genesis,
Lex Fridman (26:26.520)
okay, I was just a programmer who said,
Jeff Atwood (26:28.160)
hey, I love programming,
Lex Fridman (26:29.680)
but I have no outlet to talk about it.
Lex Fridman (26:31.000)
So I'm just gonna blog about it,
Lex Fridman (26:31.920)
because I don't have enough people to work
Jeff Atwood (26:33.320)
to talk to about it.
Lex Fridman (26:34.360)
Because at the time I worked a place where,
Jeff Atwood (26:36.440)
you know, programming wasn't the core output
Lex Fridman (26:37.960)
of the company, it was a pharmaceutical company.
Lex Fridman (26:40.840)
And I just love this stuff, you know, to an absurd degree.
Lex Fridman (26:43.560)
So I was like, I'll just blog about it.
Lex Fridman (26:44.960)
And then I'll find an audience
Lex Fridman (26:45.960)
and eventually found an audience,
Jeff Atwood (26:47.720)
eventually found Joel,
Lex Fridman (26:49.000)
and eventually built Stack Overflow
Lex Fridman (26:50.480)
from that one core of activity, right?
Lex Fridman (26:52.880)
But it was that repetition of feeding back in feedback
Jeff Atwood (26:55.880)
from my blog comments, feedback from Joel,
Lex Fridman (26:58.080)
feedback from the early Stack Overflow community.
Jeff Atwood (27:01.480)
When people see that you're doing that,
Lex Fridman (27:02.880)
they will follow along with you, right?
Jeff Atwood (27:04.160)
They'll say, cool, you're here in good faith.
Lex Fridman (27:05.520)
You're actually, you know, not listening to everything
Jeff Atwood (27:07.280)
because that's impossible, that's impossible.
Lex Fridman (27:09.320)
But you're actually, you know,
Jeff Atwood (27:11.720)
waiting our feedback and what you're doing.
Lex Fridman (27:14.120)
And why wouldn't I?
Lex Fridman (27:14.960)
Because who does all the work on Stack Overflow?
Lex Fridman (27:16.720)
Me, Joel?
Jeff Atwood (27:17.960)
No, it's the other programmers
Lex Fridman (27:19.680)
that are doing all the work.
Lex Fridman (27:20.560)
So you gotta have some respect for that.
Lex Fridman (27:22.400)
And then, you know, discipline around,
Jeff Atwood (27:24.920)
look, you know, we're trying to do a very specific thing
Lex Fridman (27:26.480)
here on Stack Overflow.
Jeff Atwood (27:27.320)
We're not trying to solve all the world's problems.
Lex Fridman (27:29.160)
We're trying to solve this very specific Q and A problem
Jeff Atwood (27:31.000)
in a very specific way.
Lex Fridman (27:32.400)
Not cause we're jerks about it,
Lex Fridman (27:33.640)
but because these strict set of rules
Lex Fridman (27:36.040)
help us get really good results, right?
Lex Fridman (27:39.440)
And programmers, that's an easy sell for the most part
Lex Fridman (27:41.520)
because programmers are used to dealing
Jeff Atwood (27:42.600)
with ridiculous systems of rules like constantly.
Lex Fridman (27:45.120)
That's basically their job.
Lex Fridman (27:46.840)
So they're very, oh yeah, super strict system of rules
Lex Fridman (27:49.520)
that lets me get what I want.
Lex Fridman (27:50.440)
That's programming, right?
Lex Fridman (27:51.620)
That's what Stack Overflow is, so.
Lex Fridman (27:53.680)
So you're making it sound easy,
Lex Fridman (27:54.920)
but in 2004, let's go back there.
Jeff Atwood (27:58.000)
In 2004, you started the blog, Coding Horror.
Lex Fridman (28:01.520)
Was it called that at the very beginning?
Jeff Atwood (28:03.600)
It was.
Lex Fridman (28:04.440)
One of the smart things I did,
Jeff Atwood (28:05.280)
it's from a book by Steve McConnell, Code Complete,
Lex Fridman (28:06.720)
which is one of my favorite programming books,
Jeff Atwood (28:08.240)
still probably my number one programming book
Lex Fridman (28:09.800)
for anyone to read.
Lex Fridman (28:10.800)
So one of the smart things I did back then,
Lex Fridman (28:13.840)
I don't always do smart things when I start stuff.
Jeff Atwood (28:16.080)
I contacted Steve and said, hey, I really like this.
Lex Fridman (28:18.400)
It was a sidebar illustration
Lex Fridman (28:19.640)
indicating danger in code, right?
Lex Fridman (28:21.820)
Coding Horror was like, watch out.
Lex Fridman (28:25.320)
And I love that illustration because it spoke to me.
Lex Fridman (28:27.360)
Because I saw that illustration go, oh my God, that's me.
Jeff Atwood (28:29.520)
Like I'm always my own worst enemy.
Lex Fridman (28:31.080)
Like that's the key insight in programming is
Jeff Atwood (28:33.360)
every time you write something,
Lex Fridman (28:34.320)
think how am I gonna screw myself?
Lex Fridman (28:36.600)
Because you will, constantly, right?
Lex Fridman (28:39.280)
So that icon was like, oh yeah,
Jeff Atwood (28:41.280)
I need to constantly hold that mirror up and look,
Lex Fridman (28:43.200)
and say, look, you're very fallible.
Jeff Atwood (28:45.440)
You're gonna screw this up.
Lex Fridman (28:46.400)
Like how can you build this in such a way
Lex Fridman (28:48.040)
that you're not gonna screw it up later?
Lex Fridman (28:50.380)
Like how can you get that discipline around
Jeff Atwood (28:53.040)
making sure at every step I'm thinking through
Lex Fridman (28:54.920)
all the things that I could do wrong
Lex Fridman (28:56.200)
or that other people could do wrong?
Lex Fridman (28:57.280)
Because that is actually how you get to be
Lex Fridman (28:58.920)
a better programmer a lot of times, right?
Lex Fridman (29:00.600)
So that sidebar illustration, I loved it so much.
Lex Fridman (29:03.400)
And I wrote Steve before I started my blog and said,
Lex Fridman (29:05.640)
hey, can I have permission to use this
Lex Fridman (29:06.800)
because I just really like this illustration?
Lex Fridman (29:08.460)
And Steve was kind enough to give me permission to do that
Lex Fridman (29:11.280)
and just continues to give me permission, so yeah.
Lex Fridman (29:13.280)
Really, that's awesome.
Lex Fridman (29:15.080)
But in 2004, you started this blog.
Lex Fridman (29:18.880)
You know, you look at Stephen King, his book on writing,
Jeff Atwood (29:22.600)
or Stephen Pressfield, War of Art book.
Lex Fridman (29:26.460)
I mean, it seems like writers suffer.
Lex Fridman (29:30.040)
I mean, it's a hard process of writing, right?
Lex Fridman (29:32.080)
There's gonna be suffering.
Jeff Atwood (29:34.200)
I mean, I won't kid you.
Lex Fridman (29:35.200)
Well, the work is suffering, right?
Jeff Atwood (29:36.400)
Like doing the work, like even when you're every week,
Lex Fridman (29:38.680)
you're like, okay, that blog post wasn't very good
Jeff Atwood (29:40.280)
or people didn't like it or people said disparaging things
Lex Fridman (29:43.360)
about it.
Jeff Atwood (29:44.200)
You have to like have the attitude like, you know,
Lex Fridman (29:47.440)
no matter what happens, I wanna do this for me, right?
Jeff Atwood (29:49.480)
It's not about you, it's about me.
Lex Fridman (29:51.220)
I mean, in the end, it is about everyone
Jeff Atwood (29:53.320)
because this is how good work gets out into the world.
Lex Fridman (29:55.840)
But you have to be pretty strict about saying like,
Jeff Atwood (29:59.780)
you know, I'm selfish in the sense
Lex Fridman (30:01.640)
that I have to do this for me.
Jeff Atwood (30:03.260)
You know, you mentioned Stephen King,
Lex Fridman (30:04.360)
like his book on writing.
Lex Fridman (30:05.460)
But like one of the things I do, for example,
Lex Fridman (30:06.840)
when writing is like, I read it out loud.
Jeff Atwood (30:08.680)
One of the best pieces of advice for writing anything
Lex Fridman (30:10.640)
is read it out loud, like multiple times
Lex Fridman (30:13.880)
and make it sound like you're talking
Lex Fridman (30:15.800)
because that is the goal of good writing.
Jeff Atwood (30:17.840)
It should sound like you said it
Lex Fridman (30:19.200)
with slightly better phrasing
Jeff Atwood (30:20.840)
because you have more time to think about what you're saying
Lex Fridman (30:22.080)
but like, it should sound natural when you say it.
Lex Fridman (30:24.360)
And I think that's probably the single best
Lex Fridman (30:26.560)
writing advice I can give anyone.
Jeff Atwood (30:27.560)
Just read it over and over out loud,
Lex Fridman (30:29.760)
make sure it sounds like something you would normally say
Lex Fridman (30:32.600)
and it sounds good.
Lex Fridman (30:33.680)
And what's your process of writing?
Jeff Atwood (30:35.600)
See, there's usually a pretty good idea
Lex Fridman (30:37.800)
behind the blog post.
Lex Fridman (30:39.360)
So ideas, right.
Lex Fridman (30:40.200)
So I think you gotta have the concept
Jeff Atwood (30:43.300)
that there's so many interesting things in the world.
Lex Fridman (30:46.180)
Like, I mean, my God, the world is amazing, right?
Jeff Atwood (30:48.800)
Like you can never write about everything that's going on
Lex Fridman (30:51.960)
because it's so incredible.
Lex Fridman (30:52.800)
But if you can't come up with like,
Lex Fridman (30:54.180)
let's say one interesting thing per day to talk about,
Jeff Atwood (30:57.100)
then you're not trying hard enough
Lex Fridman (30:58.360)
because the world is full of just super interesting stuff.
Lex Fridman (31:00.720)
And one great way to like mine stuff
Lex Fridman (31:03.120)
is go back to old books
Jeff Atwood (31:04.240)
cause they bring up old stuff that's still super relevant.
Lex Fridman (31:07.200)
And I did that a lot
Jeff Atwood (31:08.160)
cause I was like reading classic programming books
Lex Fridman (31:09.880)
and a lot of the early blog posts were like,
Jeff Atwood (31:11.260)
oh, I was reading this programming book
Lex Fridman (31:12.280)
and they brought this really cool concept
Lex Fridman (31:13.760)
and I wanna talk about it some more.
Lex Fridman (31:15.000)
And you get the, I mean,
Jeff Atwood (31:16.080)
you're not claiming credit for the idea
Lex Fridman (31:17.280)
but it gives you something interesting to talk about
Lex Fridman (31:18.660)
that's kind of evergreen, right?
Lex Fridman (31:19.880)
Like you don't have to go, what should I talk about?
Lex Fridman (31:21.960)
So we'll just go dig up some old classic programming books
Lex Fridman (31:24.600)
and find something that, oh, wow, that's interesting.
Lex Fridman (31:26.980)
Or how does that apply today?
Lex Fridman (31:28.160)
Or what about X and Y or compare these two concepts.
Lex Fridman (31:30.960)
So pull a couple of sentences from that book
Lex Fridman (31:33.200)
and then sort of play off of it,
Jeff Atwood (31:34.720)
almost agree or disagree.
Lex Fridman (31:36.160)
So in 2007, you wrote that you were offered
Jeff Atwood (31:41.880)
a significant amount of money to sell the blog.
Lex Fridman (31:44.440)
You chose not to.
Lex Fridman (31:45.960)
What were all the elements you were thinking about?
Lex Fridman (31:48.960)
Cause I'd like to take you back.
Jeff Atwood (31:50.520)
It seems like there's a lot of nonlinear decisions
Lex Fridman (31:52.520)
you made through life.
Lex Fridman (31:54.320)
So what was that decision like?
Lex Fridman (31:56.040)
Right, so one of the things I love
Jeff Atwood (31:57.840)
is the Choose Your Own Adventure books,
Lex Fridman (31:59.360)
which I loved as a kid
Lex Fridman (32:00.280)
and I feel like they're early programmer books
Lex Fridman (32:01.720)
cause they're all about if then statements, right?
Jeff Atwood (32:04.040)
If this, then this.
Lex Fridman (32:05.080)
And they're also very, very unforgiving.
Jeff Atwood (32:07.240)
Like there's all these sites that map
Lex Fridman (32:08.920)
the classic Choose Your Own Adventure books
Lex Fridman (32:11.040)
and how many outcomes are bad, a lot of bad outcomes.
Lex Fridman (32:13.940)
So part of the game is like, oh, I got a bad outcome.
Jeff Atwood (32:16.080)
Go back one step, go back one further step.
Lex Fridman (32:17.840)
It's like, how did I get here, right?
Jeff Atwood (32:19.160)
Like it's a sequence of decisions.
Lex Fridman (32:21.900)
And this is true of life, right?
Lex Fridman (32:23.160)
Like every decision is a sequence, right?
Lex Fridman (32:24.960)
Individually, any individual decision
Jeff Atwood (32:28.320)
is not necessarily right or wrong,
Lex Fridman (32:29.240)
but they lead you down a path, right?
Lex Fridman (32:31.040)
So I do think there's some truth to that.
Lex Fridman (32:32.760)
So this particular decision,
Jeff Atwood (32:34.740)
the blog had gotten fairly popular.
Lex Fridman (32:36.320)
There's a lot of RSS readers that I had discovered.
Lex Fridman (32:39.080)
And this guy contacted me out of the blue
Lex Fridman (32:40.980)
from this like bug tracking company.
Jeff Atwood (32:42.440)
He's like, oh, I really wanna buy your blog
Lex Fridman (32:43.840)
for like, I think it was around,
Jeff Atwood (32:46.040)
it was $100,000, it might have been like 80,000,
Lex Fridman (32:47.920)
but it was a lot, right?
Jeff Atwood (32:49.240)
Like, and that's, you know, at the time,
Lex Fridman (32:51.120)
like I would have a year's worth of salary all at once.
Lex Fridman (32:54.420)
So I didn't really think about like, well, you know,
Lex Fridman (32:57.720)
and I remember talking to people at the time,
Jeff Atwood (32:58.560)
I was like, wow, that's a lot of money.
Lex Fridman (32:59.840)
But then I'm like, I really like my blog, right?
Lex Fridman (33:02.000)
Like, do I wanna sell my blog?
Lex Fridman (33:03.720)
Cause it wouldn't really belong to me anymore at that point.
Lex Fridman (33:05.940)
And one of the guidelines that I like to,
Lex Fridman (33:09.360)
I don't like to give advice to people a lot,
Lex Fridman (33:11.040)
but one of the pieces of advice I do give,
Lex Fridman (33:12.520)
cause I do think it's really true and it's generally helpful
Jeff Atwood (33:15.560)
is whenever you're looking at a set of decisions,
Lex Fridman (33:17.600)
like, oh gosh, should I do A, B or C,
Jeff Atwood (33:19.860)
you gotta pick the thing that's a little scarier
Lex Fridman (33:22.500)
in that list because not, you know,
Jeff Atwood (33:24.540)
not like jump off a cliff scary,
Lex Fridman (33:25.680)
but the thing that makes you nervous.
Jeff Atwood (33:27.000)
Cause if you pick the safe choice,
Lex Fridman (33:29.000)
it's usually, you're not really pushing.
Jeff Atwood (33:30.380)
You're not pushing yourself.
Lex Fridman (33:31.400)
You're not choosing the thing that's gonna help you grow.
Lex Fridman (33:33.940)
So for me, the scarier choice was to say no.
Lex Fridman (33:36.160)
I was like, well, no, let's just see where this is going.
Lex Fridman (33:38.040)
Right?
Lex Fridman (33:38.880)
Because then I own it.
Jeff Atwood (33:39.700)
I mean, it belongs to me.
Lex Fridman (33:40.540)
It's my thing.
Lex Fridman (33:42.000)
And I can just take it
Lex Fridman (33:43.120)
and tell some other logical conclusion, right?
Jeff Atwood (33:45.360)
Because imagine how different the world would have been
Lex Fridman (33:46.880)
had I said yes and sold the blog.
Jeff Atwood (33:49.040)
It's like, there probably wouldn't be Stack Overflow.
Lex Fridman (33:51.560)
You know, a lot of other stuff would have changed.
Lex Fridman (33:53.640)
So for that particular decision,
Lex Fridman (33:55.360)
I think it was that same rule.
Jeff Atwood (33:56.280)
Like what scares me a little bit more.
Lex Fridman (33:57.920)
Do the thing that scares you.
Jeff Atwood (33:59.200)
Yeah.
Lex Fridman (34:00.040)
So speaking of which, startups.
Jeff Atwood (34:01.740)
I think there's a specific, some more general questions
Lex Fridman (34:05.000)
that a lot of people would be interested in.
Jeff Atwood (34:07.560)
You've started Stack Overflow.
Lex Fridman (34:10.320)
You started this course.
Lex Fridman (34:12.080)
So what's the, it was one, two, three guys,
Lex Fridman (34:15.320)
whatever it is in the beginning.
Lex Fridman (34:17.200)
What was that process like?
Lex Fridman (34:19.360)
Do you start talking about it?
Lex Fridman (34:20.680)
Do you start programming?
Lex Fridman (34:21.800)
Do you start, like, where's the birth
Lex Fridman (34:24.560)
and the catalyst that actually.
Lex Fridman (34:25.880)
Well, I can talk about it in the context
Jeff Atwood (34:27.040)
of both Stack Overflow and Discourse.
Lex Fridman (34:28.120)
So I think the key thing initially is there is a problem.
Jeff Atwood (34:31.080)
Something, there's some state of the world
Lex Fridman (34:32.440)
that's unsatisfactory to the point that, like,
Lex Fridman (34:34.400)
you're upset about it, right?
Lex Fridman (34:35.960)
Like, in that case, it was experts exchange.
Jeff Atwood (34:37.840)
I mean, Joel's original idea,
Lex Fridman (34:38.960)
because I approached Joel as like,
Jeff Atwood (34:40.200)
look, Joel, I have all this energy behind my blog.
Lex Fridman (34:41.760)
I want to do something.
Jeff Atwood (34:42.600)
I want to build something.
Lex Fridman (34:43.440)
But I don't know what it is,
Jeff Atwood (34:44.260)
because I'm honestly not a good idea person.
Lex Fridman (34:45.720)
I'm really not.
Jeff Atwood (34:46.560)
I'm like the execution guy.
Lex Fridman (34:47.760)
I'm really good at execution,
Lex Fridman (34:48.680)
but I'm not good at, like, blue skying ideas.
Lex Fridman (34:51.000)
Not my forte.
Jeff Atwood (34:52.080)
Which is another reason why I like the community feedback,
Lex Fridman (34:54.080)
because they blue sky all day long for you, right?
Lex Fridman (34:56.320)
So when I can just go in and cherry pick
Lex Fridman (34:57.760)
a blue sky idea from community,
Jeff Atwood (34:59.320)
even if I have to spend three hours reading
Lex Fridman (35:00.800)
to get one good idea, it's worth it, man.
Lex Fridman (35:02.720)
But anyway, so the idea from Joel was,
Lex Fridman (35:04.680)
hey, experts exchange, it's got great data,
Lex Fridman (35:07.400)
but the experience is hideous, right?
Lex Fridman (35:09.040)
It's trying to trick you.
Jeff Atwood (35:09.920)
It feels like used car salesman.
Lex Fridman (35:11.040)
It's just bad.
Lex Fridman (35:12.040)
So I was like, oh, that's awesome.
Lex Fridman (35:13.080)
It feeds into community.
Jeff Atwood (35:14.280)
It feeds into, like, you know,
Lex Fridman (35:15.120)
we can make creative comments.
Lex Fridman (35:16.680)
So I think the core is to have a really good idea
Lex Fridman (35:18.520)
that you feel very strongly about in the beginning,
Jeff Atwood (35:20.280)
that, like, there's a wrong in the world,
Lex Fridman (35:22.000)
an injustice that we will write
Jeff Atwood (35:24.240)
through the process of building this thing.
Lex Fridman (35:26.080)
For Discourse, it was like, look,
Jeff Atwood (35:27.480)
there's no good software for communities
Lex Fridman (35:30.160)
to just hang out and, like, do stuff, right?
Jeff Atwood (35:32.920)
Like, whether it's problem solving, startup, whatever.
Lex Fridman (35:35.440)
Forums are such a great building block of online community,
Lex Fridman (35:37.600)
and they're hideous.
Lex Fridman (35:38.560)
They were so bad, right?
Jeff Atwood (35:39.720)
It was embarrassing.
Lex Fridman (35:40.720)
Like, I literally was embarrassed
Lex Fridman (35:42.000)
to be associated with this software, right?
Lex Fridman (35:43.920)
I was like, we have to have software that you can be proud of.
Jeff Atwood (35:45.680)
It's like, this is competitive with Reddit.
Lex Fridman (35:47.080)
This is competitive with Twitter.
Lex Fridman (35:48.320)
This is competitive with Facebook, right?
Lex Fridman (35:50.320)
I would be proud to have the software on my site.
Lex Fridman (35:53.440)
So that was the genesis of Discourse,
Lex Fridman (35:54.840)
was feeling very strongly about there needs to be
Jeff Atwood (35:59.840)
a good solution for communities.
Lex Fridman (36:01.680)
So that's step one.
Lex Fridman (36:02.640)
Genesis of an idea you feel super strongly about, right?
Lex Fridman (36:04.520)
And then people galvanize around the idea.
Jeff Atwood (36:06.600)
Like, Joel was already super excited about the idea.
Lex Fridman (36:08.480)
I was excited about the idea.
Lex Fridman (36:09.920)
So with the forum software, I was posting on Twitter.
Lex Fridman (36:13.240)
I had researched, as part of my research,
Lex Fridman (36:15.000)
I start researching the problem, right?
Lex Fridman (36:16.600)
And I found a game called Forum Wars,
Jeff Atwood (36:19.480)
which was a parody of forum.
Lex Fridman (36:21.480)
It's still very, very funny, of forum behavior,
Jeff Atwood (36:23.680)
circa, I would say, 2003.
Lex Fridman (36:26.120)
It's aged some, right?
Jeff Atwood (36:27.720)
Like, the behavior's a little different in there of Twitter.
Lex Fridman (36:29.880)
But it was awesome.
Jeff Atwood (36:30.920)
It was very funny.
Lex Fridman (36:31.920)
And it was like a game.
Jeff Atwood (36:32.800)
It was like an RPG.
Lex Fridman (36:33.520)
And it had a forum attached to it.
Lex Fridman (36:34.960)
So it was like a game about forums with a forum attached.
Lex Fridman (36:37.520)
I was like, this is awesome, right?
Jeff Atwood (36:38.520)
This is so cool.
Lex Fridman (36:39.520)
And the founder of that company, or that project,
Jeff Atwood (36:41.920)
it wasn't really a company, contacted me,
Lex Fridman (36:43.720)
this guy Robin Ward from Toronto.
Jeff Atwood (36:45.440)
He said, hey, I saw you've been talking about forums.
Lex Fridman (36:47.400)
And I really love that problem space.
Jeff Atwood (36:49.120)
He was like, I'd still love to build really good forum
Lex Fridman (36:51.280)
software, because I don't think anything out there's any good.
Lex Fridman (36:53.440)
And I was like, awesome.
Lex Fridman (36:54.200)
At that point, I was like, we're starting a company.
Jeff Atwood (36:55.880)
Because I couldn't have whooshed for a better person
Lex Fridman (36:58.600)
to walk through the door and say, I'm excited about this,
Jeff Atwood (37:01.000)
too.
Lex Fridman (37:01.560)
Same thing with Joel, right?
Lex Fridman (37:02.360)
I mean, Joel is a legend in the industry, right?
Lex Fridman (37:04.000)
So when he walked through and said,
Jeff Atwood (37:04.760)
I'm excited about this problem, I was like, me too, man.
Lex Fridman (37:06.960)
We can do this, right?
Lex Fridman (37:08.200)
So that, to me, is the most important step.
Lex Fridman (37:10.600)
It's like, having an idea you're super excited about,
Lex Fridman (37:12.840)
and another person, a cofounder, right?
Lex Fridman (37:14.640)
Because again, you get that dual leadership, right?
Lex Fridman (37:16.760)
Am I making a bad decision?
Lex Fridman (37:19.120)
Sometimes it's nice to have checks of like,
Lex Fridman (37:21.500)
is this a good idea?
Lex Fridman (37:22.440)
I don't know, right?
Lex Fridman (37:23.680)
So those are the crucial seeds.
Lex Fridman (37:25.600)
But then starting to build stuff,
Jeff Atwood (37:27.520)
whether it's you programming or somebody else's.
Lex Fridman (37:28.360)
There is prototyping.
Lex Fridman (37:29.360)
So there's tons of research.
Lex Fridman (37:30.600)
There's tons of research, like, what's out there that failed?
Jeff Atwood (37:32.880)
Because a lot of people look at the successes.
Lex Fridman (37:34.360)
Oh, look at how successful X is.
Jeff Atwood (37:36.080)
Everybody looks at the successes.
Lex Fridman (37:37.360)
Those are boring.
Jeff Atwood (37:38.360)
Show me the failures, because that is what's interesting.
Lex Fridman (37:40.860)
That's where people were experimenting.
Jeff Atwood (37:42.080)
That's where people were pushing.
Lex Fridman (37:43.960)
And they failed, but they probably
Jeff Atwood (37:45.560)
failed for reasons that weren't directly
Lex Fridman (37:47.480)
about the quality of their idea, right?
Lex Fridman (37:50.040)
So look at all the failures.
Lex Fridman (37:51.400)
Don't just look what everybody looks at, which is like, oh,
Jeff Atwood (37:53.200)
gosh, look at all these successful people.
Lex Fridman (37:54.620)
Look at the failures.
Jeff Atwood (37:55.920)
Look at the things that didn't work.
Lex Fridman (37:57.240)
Research the entire field.
Lex Fridman (37:59.040)
And so that's the research that I was doing
Lex Fridman (38:01.440)
that led me to Robin, right?
Jeff Atwood (38:02.720)
Was that.
Lex Fridman (38:03.560)
And then when we, for example, when we did Stack Overflow,
Jeff Atwood (38:07.520)
we're like, okay, well, I really like elements
Lex Fridman (38:08.960)
of voting and dig and read it.
Jeff Atwood (38:10.000)
I like the Wikipedia, everything's up to date.
Lex Fridman (38:12.760)
Nothing is like an old tombstone
Jeff Atwood (38:14.280)
that has horrible out of date information.
Lex Fridman (38:16.940)
We know that works.
Jeff Atwood (38:17.780)
Wikipedia is an amazing resource.
Lex Fridman (38:19.360)
Blogging, the idea of ownership is so powerful, right?
Jeff Atwood (38:22.360)
Like, oh, I, Joe wrote this,
Lex Fridman (38:23.960)
and look how good Joe's answer is, right?
Jeff Atwood (38:26.200)
All these concepts were rolling together.
Lex Fridman (38:27.720)
Researching all the things that were out there
Jeff Atwood (38:29.040)
that were working and why they were working
Lex Fridman (38:30.600)
and trying to fold them into, again,
Jeff Atwood (38:32.360)
that Frankenstein's monster of what Stack Overflow is.
Lex Fridman (38:35.280)
And by the way, that wasn't a free decision
Jeff Atwood (38:37.040)
because there's still a ton of tension
Lex Fridman (38:38.720)
in the Stack Overflow system.
Jeff Atwood (38:40.000)
There's reasons people complain about Stack Overflow
Lex Fridman (38:42.560)
because it's so strict, right?
Lex Fridman (38:43.640)
Why is it so strict?
Lex Fridman (38:44.640)
Why are you guys always closing my questions?
Jeff Atwood (38:46.480)
It's because there's so much tension
Lex Fridman (38:47.880)
that we built into the system
Jeff Atwood (38:49.120)
around trying to get good, good results out of the system.
Lex Fridman (38:51.880)
And it's not a free.
Lex Fridman (38:56.000)
That stuff doesn't come for free, right?
Lex Fridman (38:57.520)
It's not like we, we all have perfect answers
Lex Fridman (38:59.800)
and nobody will have to get their feelings heard
Lex Fridman (39:02.280)
or nobody will have to get downvoted.
Lex Fridman (39:04.560)
It doesn't work that way, right?
Lex Fridman (39:06.640)
So this is an interesting point and a small tangent.
Jeff Atwood (39:09.400)
You write about anxiety.
Lex Fridman (39:12.000)
So I've posted a lot of questions
Lex Fridman (39:14.040)
and written answers on Stack Overflow.
Lex Fridman (39:16.040)
On the question side, you usually go to
Jeff Atwood (39:18.320)
something very specific to something I'm working on.
Lex Fridman (39:21.160)
And this is something you talk about
Jeff Atwood (39:22.280)
that really the goal of Stack Overflow isn't about,
Lex Fridman (39:26.120)
is to write a question that's not about you,
Jeff Atwood (39:29.360)
it's about the question that will help
Lex Fridman (39:33.480)
the community in the future.
Lex Fridman (39:35.800)
Right, but that's a tough sell, right?
Lex Fridman (39:37.520)
Because people are like, well,
Jeff Atwood (39:39.160)
I don't really care about the community.
Lex Fridman (39:40.280)
What I care about is my problem.
Lex Fridman (39:41.520)
And that's fair, right?
Lex Fridman (39:43.400)
It's sort of that, again, that tension,
Jeff Atwood (39:44.880)
that balancing act of we wanna help you,
Lex Fridman (39:46.680)
but we also wanna help everybody that comes behind you.
Jeff Atwood (39:48.640)
The long line of people are gonna come up and say,
Lex Fridman (39:49.880)
oh, I kinda have that problem too, right?
Lex Fridman (39:52.240)
And if nobody's ever gonna come up and say,
Lex Fridman (39:54.040)
I have this problem too,
Jeff Atwood (39:54.880)
then that question shouldn't exist on Stack Overflow
Lex Fridman (39:57.000)
because the question is too specific.
Lex Fridman (39:58.840)
And even that's tension, right?
Lex Fridman (40:00.040)
How do you judge that?
Lex Fridman (40:00.880)
How do you know that nobody's ever gonna have
Lex Fridman (40:02.600)
this particular question again?
Lex Fridman (40:04.680)
So there's a lot of tension in the system.
Lex Fridman (40:06.800)
Do you think that anxiety of asking the question,
Jeff Atwood (40:09.560)
the anxiety of answering,
Lex Fridman (40:11.560)
that tension is inherent to programmers,
Lex Fridman (40:14.200)
is inherent to this kind of process?
Lex Fridman (40:16.960)
Or can it be improved?
Jeff Atwood (40:20.320)
Can it be happy land
Lex Fridman (40:22.440)
where that tension is not quite so harsh?
Jeff Atwood (40:26.880)
I don't think Stack Overflow
Lex Fridman (40:28.120)
can totally change the way it works.
Jeff Atwood (40:30.040)
One thing they are working on finally
Lex Fridman (40:31.800)
is the ask page had not changed since 2011.
Jeff Atwood (40:35.200)
I'm still kind of bitter about this
Lex Fridman (40:36.760)
because I feel like you have a Q&A system
Lex Fridman (40:39.360)
and what are the core pages in a Q&A system?
Lex Fridman (40:41.400)
Well, first of all, the question,
Jeff Atwood (40:42.240)
all the answers and also the ask page,
Lex Fridman (40:43.760)
particularly when you're a new user
Jeff Atwood (40:45.120)
or someone trying to ask a question,
Lex Fridman (40:46.520)
that's the point at which you need the most help.
Lex Fridman (40:48.400)
And we just didn't adapt with the times.
Lex Fridman (40:50.760)
But the good news is they're working on this,
Jeff Atwood (40:52.320)
from what I understand,
Lex Fridman (40:53.200)
and it's gonna be a more wizard based format.
Lex Fridman (40:55.180)
And you could envision a world
Lex Fridman (40:56.820)
where as part of this wizard based program,
Jeff Atwood (40:58.420)
when you're asking questions,
Lex Fridman (40:59.360)
okay, come up with a good title,
Lex Fridman (41:01.080)
what are good words to put in the title?
Lex Fridman (41:02.560)
One word that's not good to put in the title
Jeff Atwood (41:04.280)
is problem, for example.
Lex Fridman (41:05.880)
I have a problem.
Jeff Atwood (41:06.700)
Oh, you have a problem.
Lex Fridman (41:07.760)
Okay, a problem, that's great.
Jeff Atwood (41:10.400)
You need specifics.
Lex Fridman (41:11.400)
So it's trying to help you make a good question title,
Jeff Atwood (41:13.440)
for example, that step will be broken out, all that stuff.
Lex Fridman (41:17.280)
But one of those steps in that wizard of asking
Jeff Atwood (41:19.560)
could say, hey, I'm a little nervous.
Lex Fridman (41:21.600)
I've never done this before.
Lex Fridman (41:22.660)
Can you put me in a queue for special mentoring?
Lex Fridman (41:26.080)
You could opt in to a special mentor.
Jeff Atwood (41:27.560)
I think that would be fantastic.
Lex Fridman (41:28.960)
I don't have any objection to that at all
Jeff Atwood (41:31.360)
in terms of being an opt in system.
Lex Fridman (41:32.600)
Because there are people that are like,
Jeff Atwood (41:33.920)
I just wanna help them.
Lex Fridman (41:35.480)
I wanna help a person no matter what.
Jeff Atwood (41:36.720)
I wanna go above and beyond.
Lex Fridman (41:37.920)
I wanna spend hours with this person.
Jeff Atwood (41:41.320)
It depends what their goals are.
Lex Fridman (41:42.960)
It's a great idea.
Lex Fridman (41:43.780)
Who am I to judge?
Lex Fridman (41:44.620)
So that's fine.
Jeff Atwood (41:45.460)
It's not precluded from happening.
Lex Fridman (41:47.320)
But there's a certain big city ethos
Jeff Atwood (41:49.000)
that we started with.
Lex Fridman (41:49.840)
Like, look, we're in New York City.
Jeff Atwood (41:51.080)
You don't come to New York City
Lex Fridman (41:52.040)
and expect them to be, oh, welcome to the city, Joe.
Lex Fridman (41:54.360)
How's it going?
Lex Fridman (41:55.200)
Come on in.
Jeff Atwood (41:56.020)
Let me show you around.
Lex Fridman (41:57.120)
That's not how New York City works.
Jeff Atwood (42:01.480)
Again, New York City has a reputation for being rude,
Lex Fridman (42:03.060)
which I actually don't think it is,
Jeff Atwood (42:04.080)
having been there fairly recently.
Lex Fridman (42:05.240)
It's not rude.
Jeff Atwood (42:06.080)
It's just like going about their business.
Lex Fridman (42:07.240)
Like, look, I have things to do.
Jeff Atwood (42:08.980)
I'm busy.
Lex Fridman (42:09.820)
I'm a busy professional, as are you.
Lex Fridman (42:11.840)
And since you're a busy professional,
Lex Fridman (42:13.440)
certainly when you ask a question,
Jeff Atwood (42:14.680)
you're gonna ask the best possible question.
Lex Fridman (42:16.440)
Because you're a busy professional
Lex Fridman (42:18.220)
and you would not accept anything less
Lex Fridman (42:20.160)
than a very well written question
Jeff Atwood (42:21.420)
with a lot of detail about why you're doing it,
Lex Fridman (42:23.280)
what you're doing, what you researched,
Lex Fridman (42:25.060)
what you found,
Lex Fridman (42:26.200)
because you're a professional like me.
Lex Fridman (42:28.600)
And this rubs people sometimes the wrong way.
Lex Fridman (42:31.000)
And I don't think it's wrong to say,
Jeff Atwood (42:32.320)
look, I don't want that experience.
Lex Fridman (42:33.680)
I want just a more chill place for beginners.
Lex Fridman (42:37.600)
And I still think Stack Overflow
Lex Fridman (42:39.160)
is not, was never designed for beginners, right?
Jeff Atwood (42:41.960)
There's this misconception that,
Lex Fridman (42:43.840)
even Joel says sometimes,
Jeff Atwood (42:44.800)
oh yeah, Stack Overflow for beginners.
Lex Fridman (42:46.120)
And I think if you're a prodigy, it can be.
Jeff Atwood (42:48.840)
Right.
Lex Fridman (42:49.660)
But for the most part, not.
Lex Fridman (42:50.500)
But that's not really representative, right?
Lex Fridman (42:51.760)
Like, I think as a beginner,
Jeff Atwood (42:53.060)
you want a totally different set of tools.
Lex Fridman (42:55.120)
You want like live screen sharing, live chat.
Jeff Atwood (42:58.060)
You want access to resources.
Lex Fridman (42:59.220)
You want a playground,
Jeff Atwood (43:00.260)
like a playground you can experiment in
Lex Fridman (43:02.360)
and like test and all this stuff
Jeff Atwood (43:04.480)
that we just don't give people
Lex Fridman (43:05.640)
because that was never really the audience
Jeff Atwood (43:07.780)
that we were designing Stack Overflow for.
Lex Fridman (43:09.280)
That doesn't mean it's wrong.
Lex Fridman (43:10.680)
And I think it would be awesome
Lex Fridman (43:11.800)
if there was a site like that on the internet,
Jeff Atwood (43:13.280)
or if Stack Overflow said,
Lex Fridman (43:14.320)
hey, you know, we're gonna start doing this.
Jeff Atwood (43:15.800)
That's fine too.
Lex Fridman (43:16.960)
You know, I'm not there.
Jeff Atwood (43:17.800)
I'm not making those decisions.
Lex Fridman (43:18.680)
But I do think the pressure,
Jeff Atwood (43:20.640)
the tension that you described is there for people to be,
Lex Fridman (43:22.800)
look, I'm a little nervous
Lex Fridman (43:24.480)
because I know I gotta do my best work, right?
Lex Fridman (43:26.400)
The other one is something you talk about,
Jeff Atwood (43:28.040)
which is also really interesting to me,
Lex Fridman (43:30.320)
is duplicate questions or it's a really difficult problem
Jeff Atwood (43:37.160)
that you highlight.
Lex Fridman (43:38.080)
It's super hard.
Jeff Atwood (43:39.480)
Like you could take one little topic
Lex Fridman (43:41.720)
and you could probably write 10, 20, 30 ways
Jeff Atwood (43:44.960)
of asking about that topic
Lex Fridman (43:46.640)
and there will be all different.
Jeff Atwood (43:48.220)
I don't know if there should be one page
Lex Fridman (43:50.200)
that answers all of it.
Jeff Atwood (43:51.880)
Is there a way that Stack Overflow can help disambiguate,
Lex Fridman (43:56.880)
like separate these duplicate questions
Lex Fridman (44:01.160)
or connect them together?
Lex Fridman (44:02.820)
Or is it a totally hopeless, difficult, impossible task?
Jeff Atwood (44:06.220)
I think it's a very, very hard computer science problem.
Lex Fridman (44:08.480)
And partly because people are very good
Jeff Atwood (44:10.280)
at using completely different words.
Lex Fridman (44:11.760)
It always amazed me on Stack Overflow.
Jeff Atwood (44:13.160)
You'd have two questions that were functionally identical
Lex Fridman (44:15.440)
and one question had like zero words in common
Jeff Atwood (44:17.520)
with the other question.
Lex Fridman (44:18.360)
Like, oh my God, from a computer science perspective,
Lex Fridman (44:20.920)
how do you even begin to solve that?
Lex Fridman (44:22.960)
And it happens all the time.
Lex Fridman (44:24.480)
People are super good at this, right?
Lex Fridman (44:26.280)
Accidentally at asking the same thing
Jeff Atwood (44:28.360)
in like 10, 20 different ways.
Lex Fridman (44:31.200)
And the other complexity is we want some
Jeff Atwood (44:32.760)
of those duplicates to exist
Lex Fridman (44:33.900)
because if there's five versions with different words,
Jeff Atwood (44:36.000)
have those five versions point
Lex Fridman (44:37.280)
to the one centralized answer, right?
Jeff Atwood (44:39.560)
It's like, okay, this is a duplicate, no worries.
Lex Fridman (44:41.880)
Here's the answer that you wanted over here
Jeff Atwood (44:43.460)
on the prime example that we want to have,
Lex Fridman (44:48.000)
rather than having 10 copies of the question and the answer.
Jeff Atwood (44:50.680)
Because if you have 10 copies of the question and answer,
Lex Fridman (44:52.400)
this also devalues the reputation system,
Jeff Atwood (44:54.120)
which programmers hate, as I previously mentioned.
Lex Fridman (44:56.880)
You're getting reputation for an answer
Jeff Atwood (44:58.320)
that somebody else already gave.
Lex Fridman (44:59.320)
It's like, well, it's an answer,
Lex Fridman (45:00.440)
but somebody else already gave that answer.
Lex Fridman (45:02.200)
So why are you getting reputation for the same answer
Lex Fridman (45:04.560)
as the other guy who gave it four years ago?
Lex Fridman (45:06.480)
People get offended by that, right?
Lex Fridman (45:07.760)
So the reputation system itself adds tension to the system
Lex Fridman (45:11.920)
in that the people who have a lot of reputation
Jeff Atwood (45:14.040)
become very incentivized to enforce the reputation system.
Lex Fridman (45:17.600)
And for the most part, that's good.
Jeff Atwood (45:18.920)
I know it sounds weird, but for most parts,
Lex Fridman (45:20.520)
like look, strict systems, I think to use Stack Overflow,
Jeff Atwood (45:23.880)
you have to have the idea that, OK, strict systems ultimately
Lex Fridman (45:26.000)
work better.
Lex Fridman (45:26.720)
And I do think in programming, you're
Lex Fridman (45:28.440)
familiar with loose typing versus strict typing, right?
Jeff Atwood (45:31.320)
The idea that you can declare a variable,
Lex Fridman (45:33.000)
not declare a variable, rather, just start using a variable.
Lex Fridman (45:34.840)
And OK, I see it's implicitly an integer.
Lex Fridman (45:36.280)
Bam, awesome.
Jeff Atwood (45:37.200)
Duck equals 5.
Lex Fridman (45:38.120)
Well, duck is now an integer of 5, right?
Lex Fridman (45:40.360)
And you're like, cool, awesome, simpler, right?
Lex Fridman (45:42.320)
Why would I want to worry about typing?
Lex Fridman (45:43.840)
And for a long time, in the Ruby community,
Lex Fridman (45:45.800)
they're like, yeah, this is awesome.
Jeff Atwood (45:46.920)
You just do a bunch of unit testing,
Lex Fridman (45:48.320)
which is testing your program's validity after the fact
Jeff Atwood (45:50.960)
to catch any bugs that strict typing of variables
Lex Fridman (45:54.160)
would have caught.
Lex Fridman (45:55.040)
And now you have this thing called
Lex Fridman (45:56.080)
TypeScript for Microsoft from the guy who
Jeff Atwood (45:58.080)
built C Sharp Anders, who's one of the greatest
Lex Fridman (46:01.120)
minds in software development, right,
Jeff Atwood (46:02.840)
like in terms of language design.
Lex Fridman (46:04.480)
And says, no, no, no, we want to bolt on a strict type
Jeff Atwood (46:06.560)
system to JavaScript because it makes things better.
Lex Fridman (46:08.200)
And now everybody's like, oh my god, we deployed TypeScript
Lex Fridman (46:11.480)
and found 50 latent bugs that we didn't know about, right?
Lex Fridman (46:14.480)
Like, this is super common.
Lex Fridman (46:15.840)
So I think there is a truth in programming
Lex Fridman (46:19.960)
that strictness, it's not the goal.
Jeff Atwood (46:22.280)
We're not saying be super strict because strictness is correct.
Lex Fridman (46:25.720)
No, it's no, no.
Jeff Atwood (46:26.600)
Strictness produces better results.
Lex Fridman (46:28.640)
That's what I'm saying, right?
Lex Fridman (46:29.880)
So strict typing of variables, I would
Lex Fridman (46:32.000)
say you almost universally have consensus now
Jeff Atwood (46:33.920)
is basically correct.
Lex Fridman (46:35.440)
Should be that way in every language, right?
Jeff Atwood (46:37.720)
Duck equals five should generate an error
Lex Fridman (46:39.480)
because no, you didn't declare.
Lex Fridman (46:40.720)
You didn't tell me that duck was an integer, right?
Lex Fridman (46:42.960)
That's a bug, right?
Jeff Atwood (46:43.840)
Or maybe you mistyped.
Lex Fridman (46:44.720)
You typed deck instead of duck, right?
Jeff Atwood (46:46.480)
You never know.
Lex Fridman (46:47.120)
This happens all the time, right?
Lex Fridman (46:48.840)
So with that in mind, I will say that the strictness
Lex Fridman (46:51.600)
of the system is correct.
Jeff Atwood (46:52.720)
Now, that doesn't mean cruel.
Lex Fridman (46:53.960)
That doesn't mean mean.
Jeff Atwood (46:55.040)
That doesn't mean angry.
Lex Fridman (46:56.080)
It just means strict, OK?
Lex Fridman (46:57.560)
So I think where there's misunderstanding
Lex Fridman (46:59.280)
is people get cranky, right?
Jeff Atwood (47:00.720)
Like, another question you asked is like, why are programmers
Lex Fridman (47:03.920)
kind of mean sometimes?
Lex Fridman (47:05.160)
Well, who do programmers work with all day long?
Lex Fridman (47:07.480)
So I have a theory that if you're at a job
Lex Fridman (47:10.080)
and you work with assholes all day long,
Lex Fridman (47:12.440)
what do you eventually become?
Jeff Atwood (47:14.400)
An asshole.
Lex Fridman (47:15.000)
An asshole.
Lex Fridman (47:15.800)
And what is the computer except the world's biggest asshole?
Lex Fridman (47:19.280)
Because the computer has no time for your bullshit.
Jeff Atwood (47:21.800)
The computer, the minute you make a mistake,
Lex Fridman (47:24.040)
everything is crashing down, right?
Lex Fridman (47:25.480)
One semicolon has crashed space missions, right?
Lex Fridman (47:28.160)
So that's normal.
Lex Fridman (47:29.040)
So you begin to internalize that.
Lex Fridman (47:30.640)
You begin to think, oh, my coworker, the computer,
Jeff Atwood (47:34.640)
is super strict and kind of a jerk about everything.
Lex Fridman (47:37.520)
So that's kind of how I'm going to be.
Jeff Atwood (47:40.000)
Because I work with this computer,
Lex Fridman (47:41.840)
and I have to exceed to its terms on everything.
Lex Fridman (47:44.600)
So therefore, you start to absorb that.
Lex Fridman (47:46.400)
You start to think, oh, well, being really strict arbitrarily
Jeff Atwood (47:49.400)
is really good.
Lex Fridman (47:50.440)
An error of error code 56249 is a completely good error message
Lex Fridman (47:54.120)
because that's what the computer gave me, right?
Lex Fridman (47:56.120)
So you kind of forget to be a person at some level.
Lex Fridman (47:59.440)
And you know how they say great detectives internalize
Lex Fridman (48:02.200)
criminals and kind of are criminals themselves,
Jeff Atwood (48:04.200)
like this trope of the master detective
Lex Fridman (48:06.700)
is good because he can think like the criminal.
Jeff Atwood (48:08.720)
Well, I do think that's true of programmers.
Lex Fridman (48:10.520)
Really good programmers think like the computer
Jeff Atwood (48:12.720)
because that's their job.
Lex Fridman (48:14.200)
But if you internalize it too much, you become the computer.
Jeff Atwood (48:17.080)
You kind of become a jerk to everybody
Lex Fridman (48:19.560)
because that's what you've internalized.
Jeff Atwood (48:21.720)
You're almost not a jerk, but you have no patience
Lex Fridman (48:24.240)
for a lack of strictness, as you said.
Jeff Atwood (48:26.240)
It's not out of a sense of meanness.
Lex Fridman (48:27.840)
It's accidental.
Lex Fridman (48:28.640)
But I do believe it's an occupational hazard
Lex Fridman (48:30.400)
of being a programmer is you start
Jeff Atwood (48:32.000)
to behave like the computer.
Lex Fridman (48:33.760)
You're very unforgiving.
Jeff Atwood (48:34.800)
You're very terse.
Lex Fridman (48:35.920)
You're very, oh, wrong, incorrect, move on.
Lex Fridman (48:38.400)
It's like, well, can you help me?
Lex Fridman (48:40.040)
What could I do to fix?
Jeff Atwood (48:41.240)
No, wrong, next question.
Lex Fridman (48:44.000)
Like, that's normal for the computer.
Jeff Atwood (48:46.440)
Just fail, next.
Lex Fridman (48:49.280)
I don't know if you remember in Saturday Night Live,
Jeff Atwood (48:51.600)
in the 90s, they had this character who was an IT guy.
Lex Fridman (48:54.640)
The move guy.
Jeff Atwood (48:55.520)
Move.
Lex Fridman (48:56.040)
Move.
Lex Fridman (48:56.720)
Was that Jimmy Fallon?
Lex Fridman (48:58.080)
No.
Jeff Atwood (48:58.640)
No.
Lex Fridman (48:59.760)
Who played him?
Jeff Atwood (49:01.160)
OK, yeah, I remember.
Lex Fridman (49:02.120)
Move.
Jeff Atwood (49:02.620)
Right.
Lex Fridman (49:03.120)
He had no patience for it.
Jeff Atwood (49:04.160)
Might have been Mad TV, actually.
Lex Fridman (49:05.720)
Wasn't it Mad TV?
Jeff Atwood (49:06.680)
Might have been.
Lex Fridman (49:07.600)
But anyway, that's always been the perception.
Jeff Atwood (49:10.940)
You start to behave like the computer.
Lex Fridman (49:12.560)
It's like, oh, you're wrong, out of the way, you know?
Jeff Atwood (49:14.880)
You've written so many blog posts about programming,
Lex Fridman (49:17.560)
about programs, programming, programmers.
Lex Fridman (49:22.720)
What do you think makes a good, let's start with,
Lex Fridman (49:26.920)
what makes a good solo programmer?
Jeff Atwood (49:29.360)
Well, I don't think you should be a solo programmer.
Lex Fridman (49:31.600)
I think to be a good solo programmer,
Jeff Atwood (49:33.400)
it's kind of like what I talked about, well, not on Mike,
Lex Fridman (49:35.800)
but one of the things John Carmack, one of the best
Jeff Atwood (49:39.240)
points he makes in the book Masters of Doom, which
Lex Fridman (49:41.120)
is a fantastic book, and anybody listening to this
Jeff Atwood (49:43.200)
who hasn't read it, please read it.
Lex Fridman (49:44.700)
It's such a great book, is that at the time,
Jeff Atwood (49:47.400)
they were working on stuff like Wolfenstein and Doom.
Lex Fridman (49:50.720)
They didn't have the resources that we have today.
Jeff Atwood (49:52.780)
They didn't have Stack Overflow.
Lex Fridman (49:53.940)
They didn't have Wikipedia.
Jeff Atwood (49:54.860)
They didn't have discourse forums.
Lex Fridman (49:56.680)
They didn't have places to go to get people to help them.
Jeff Atwood (50:00.200)
They had to work on their own.
Lex Fridman (50:01.880)
And that's why it took a genius like Carmack
Jeff Atwood (50:03.760)
to do this stuff, because you had
Lex Fridman (50:05.120)
to be a genius to invent from first principles.
Jeff Atwood (50:07.160)
A lot of the stuff he was like, the hacks he was coming up
Lex Fridman (50:09.560)
with were genius, genius level stuff.
Lex Fridman (50:11.900)
But you don't need to be a genius anymore,
Lex Fridman (50:13.880)
and that means not working by yourself.
Jeff Atwood (50:15.540)
You have to be good at researching stuff online.
Lex Fridman (50:17.420)
You have to be good at asking questions, really good
Jeff Atwood (50:19.680)
questions that are really well researched, which implies,
Lex Fridman (50:21.440)
oh, I went out and researched for three hours
Jeff Atwood (50:23.080)
before I wrote these questions.
Lex Fridman (50:24.240)
That's what you should be doing, because that's
Jeff Atwood (50:26.200)
what's going to make you good.
Lex Fridman (50:28.160)
To me, this is the big difference
Jeff Atwood (50:29.360)
between programming in the 80s versus programming today,
Lex Fridman (50:32.120)
is you kind of had to be by yourself back then.
Lex Fridman (50:35.040)
Where would you go for answers?
Lex Fridman (50:36.560)
I remember in the early days when
Jeff Atwood (50:38.060)
I was learning Visual Basic for Windows,
Lex Fridman (50:41.320)
I would call the Microsoft Helpline on the phone
Jeff Atwood (50:44.600)
when I had programming.
Lex Fridman (50:45.680)
Because I was like, I don't know what to do.
Lex Fridman (50:47.040)
So I would go and call, and they had these huge phone banks.
Lex Fridman (50:49.640)
And I'm like, can you imagine how alien that is now?
Lex Fridman (50:51.480)
Who would do that?
Lex Fridman (50:52.480)
That's crazy.
Lex Fridman (50:53.560)
So there was just nowhere else to go when you got stuck.
Lex Fridman (50:57.720)
I had the books that came with it.
Jeff Atwood (50:59.560)
I read those, studied those religiously.
Lex Fridman (51:01.320)
I just saw a post from Steve Sanofsky
Jeff Atwood (51:03.320)
that said the C++ version 7 came with 10,000 pages
Lex Fridman (51:08.880)
of written material.
Lex Fridman (51:10.640)
Because where else were you going to figure that stuff out?
Lex Fridman (51:13.600)
Go to the library?
Jeff Atwood (51:14.640)
I mean, you didn't have Wikipedia.
Lex Fridman (51:16.100)
You didn't have Reddit.
Jeff Atwood (51:17.880)
You didn't have anywhere to go to answer these questions.
Lex Fridman (51:20.760)
So you've talked about, through the years,
Jeff Atwood (51:24.160)
basically not having an ego and not
Lex Fridman (51:26.200)
thinking that you're the best programmer in the world.
Lex Fridman (51:29.920)
So always kind of just looking to improve,
Lex Fridman (51:34.040)
to become a better programmer than you were yesterday.
Lex Fridman (51:36.520)
So how have you changed as a programmer
Lex Fridman (51:39.160)
and as a thinker, designer around programming
Jeff Atwood (51:43.280)
over the past, what is it, 15 years, really,
Lex Fridman (51:47.600)
of being a public figure?
Jeff Atwood (51:48.960)
I would say the big insight that I had is, eventually,
Lex Fridman (51:51.960)
as a programmer, you have to stop writing code
Jeff Atwood (51:54.000)
to be effective, which is kind of disturbing.
Lex Fridman (51:56.880)
Because you really love it.
Lex Fridman (51:58.240)
But you realize being effective at programming,
Lex Fridman (52:01.600)
at programming in the general sense,
Jeff Atwood (52:03.960)
doesn't mean writing code.
Lex Fridman (52:05.120)
And a lot of times, you can be much more successful by not
Jeff Atwood (52:07.000)
writing code and writing code in terms of just solving
Lex Fridman (52:09.840)
the problems you have, essentially hiring people
Jeff Atwood (52:11.680)
that are really good and setting them free
Lex Fridman (52:13.780)
and giving them basic direction on strategy and stuff.
Jeff Atwood (52:18.000)
Because a lot of the problems you encounter
Lex Fridman (52:19.680)
aren't necessarily solved through really gnarly code.
Jeff Atwood (52:22.360)
They're solved by conceptual solutions, which can then
Lex Fridman (52:25.720)
be turned into code.
Lex Fridman (52:26.520)
But are you even solving the right problem?
Lex Fridman (52:29.720)
So I would say, for me, the main insight I have
Jeff Atwood (52:32.880)
is, to succeed as a programmer, you eventually
Lex Fridman (52:36.080)
kind of stop writing code.
Jeff Atwood (52:37.560)
That's going to sound discouraging, probably,
Lex Fridman (52:39.160)
to people hearing.
Lex Fridman (52:39.680)
But I don't mean it that way.
Lex Fridman (52:40.760)
What I mean is that you're coding
Jeff Atwood (52:42.120)
at a higher level language.
Lex Fridman (52:43.360)
Eventually, like, OK, so we're coding in assembly language.
Lex Fridman (52:45.600)
That's the beginning, right?
Lex Fridman (52:46.800)
You're hardcoded to the architecture.
Jeff Atwood (52:48.960)
Then you have stuff like C, where it's like, wow,
Lex Fridman (52:50.280)
we can abstract across the architecture.
Jeff Atwood (52:52.080)
We can write code.
Lex Fridman (52:52.880)
I can then compile that code for ARM
Jeff Atwood (52:54.640)
or whatever x86 or whatever else is out there.
Lex Fridman (52:58.400)
And then even higher level than that,
Jeff Atwood (53:00.600)
you're looking at Python, Ruby, interpreted languages.
Lex Fridman (53:03.160)
And then, to me, as a programmer,
Jeff Atwood (53:04.680)
I'm like, OK, I want to go even higher.
Lex Fridman (53:06.000)
I want to go higher than that.
Lex Fridman (53:07.200)
How do I abstract higher than the language?
Lex Fridman (53:08.560)
It's like, well, you abstract in spoken language
Lex Fridman (53:11.120)
and written language, right?
Lex Fridman (53:12.560)
You're sort of inspiring people to get things done,
Lex Fridman (53:14.640)
giving them guidance, like, what if we did this?
Lex Fridman (53:16.080)
What if we did this?
Jeff Atwood (53:17.240)
You're writing in the highest level language
Lex Fridman (53:19.120)
that there is, which is, for me, English,
Jeff Atwood (53:21.360)
whatever your spoken language is.
Lex Fridman (53:23.120)
So it's all about being effective, right?
Lex Fridman (53:25.960)
And I think Patrick McKenzie, patio11 on Hacker News
Lex Fridman (53:31.000)
and works at Stripe, has a great post about this,
Jeff Atwood (53:33.600)
of how calling yourself a programmer
Lex Fridman (53:35.880)
is a career limiting move at some level
Jeff Atwood (53:38.160)
once you get far enough from your career.
Lex Fridman (53:39.800)
And I really believe that.
Lex Fridman (53:40.800)
And again, I apologize.
Lex Fridman (53:41.840)
This is sound discouraging.
Jeff Atwood (53:43.080)
I don't mean it to be, but he's so right.
Lex Fridman (53:45.240)
Because all the stuff that goes on around the code,
Jeff Atwood (53:47.720)
like the people, that's another thing,
Lex Fridman (53:49.760)
if you look at my early blog entries, is about, wow,
Jeff Atwood (53:52.200)
programming is about people more than it's
Lex Fridman (53:54.720)
about code, which doesn't really make sense.
Lex Fridman (53:56.680)
But it's about, can these people even get along together?
Lex Fridman (53:59.160)
Can they understand each other?
Lex Fridman (54:00.720)
Can you even explain to me what it is you're working on?
Lex Fridman (54:03.000)
Are you solving the right problem?
Jeff Atwood (54:04.560)
PeopleWare, another classic programming book,
Lex Fridman (54:06.600)
which, again, up there with Code Complete,
Jeff Atwood (54:08.480)
please read PeopleWare.
Lex Fridman (54:09.960)
It's that software is people.
Jeff Atwood (54:11.560)
People are the software, first and foremost.
Lex Fridman (54:13.440)
So a lot of the skills that I was working on early
Jeff Atwood (54:15.860)
in the blog were about figuring out the people
Lex Fridman (54:18.560)
parts of programming, which were the harder parts.
Jeff Atwood (54:20.680)
The hard part of programming, once you
Lex Fridman (54:21.880)
get a certain skill level in programming,
Jeff Atwood (54:23.040)
you can pretty much solve any reasonable problem that's
Lex Fridman (54:25.360)
put in front of you.
Jeff Atwood (54:26.320)
You're not writing algorithms from scratch.
Lex Fridman (54:28.120)
That just doesn't happen.
Lex Fridman (54:29.280)
So any sort of reasonable problem put in front of you,
Lex Fridman (54:31.360)
you're going to be able to solve.
Lex Fridman (54:32.760)
But what you can't solve is, our manager is a total jerk.
Lex Fridman (54:36.920)
You cannot solve that with code.
Jeff Atwood (54:38.600)
That is not a code solvable problem.
Lex Fridman (54:40.800)
And yet, that will cripple you way more than, oh, we
Jeff Atwood (54:44.040)
had to use this stupid framework I don't like,
Lex Fridman (54:45.800)
or Sam keeps writing bad code that I hate,
Jeff Atwood (54:49.320)
or Dave is off there in the wilderness writing
Lex Fridman (54:52.440)
God knows what.
Jeff Atwood (54:53.280)
These are not your problems.
Lex Fridman (54:54.440)
Your problem is your manager or a co worker
Jeff Atwood (54:56.800)
is so toxic to everybody else in your team
Lex Fridman (54:58.760)
that nobody can get anything done,
Jeff Atwood (55:00.080)
because everybody's so stressed out and freaked out.
Lex Fridman (55:02.320)
These are the problems that you have to attack.
Jeff Atwood (55:04.520)
Absolutely.
Lex Fridman (55:05.040)
And so as you go to these higher level abstractions,
Jeff Atwood (55:07.360)
as you've developed as a programmer
Lex Fridman (55:09.060)
to higher and higher level abstractions
Lex Fridman (55:10.600)
and go into natural language, you're
Lex Fridman (55:12.680)
also the guy who preached building it, diving in
Lex Fridman (55:17.560)
and doing it, and learn by doing.
Lex Fridman (55:21.720)
Yes.
Lex Fridman (55:22.840)
Do you worry that as you get to higher and higher level
Lex Fridman (55:29.120)
abstractions, you lose track of the lower level of just
Lex Fridman (55:34.320)
building?
Lex Fridman (55:35.880)
Do you worry about that, even not maybe now,
Lex Fridman (55:38.560)
but 10 years from now, 20 years from now?
Lex Fridman (55:41.560)
Well, no.
Jeff Atwood (55:42.480)
I mean, there is always that paranoia around, oh, gosh,
Lex Fridman (55:44.360)
I don't feel it's valuable since I'm not writing code.
Lex Fridman (55:46.240)
But for me, when we started the discourse project,
Lex Fridman (55:48.280)
it was Ruby, which I didn't really know Ruby.
Jeff Atwood (55:50.280)
I mean, as you pointed out, and this
Lex Fridman (55:51.840)
is another valuable observation in Stack Overflow,
Jeff Atwood (55:53.840)
you can be super proficient in, for example, C Sharp,
Lex Fridman (55:56.040)
which I was working in.
Jeff Atwood (55:56.760)
That's what we built Stack Overflow in and still
Lex Fridman (55:58.400)
is written in.
Lex Fridman (55:59.360)
And then switch to Ruby, and you're a newbie again.
Lex Fridman (56:01.920)
But you have the framework.
Jeff Atwood (56:03.240)
I know what a for loop is.
Lex Fridman (56:04.440)
I know what recursion is.
Jeff Atwood (56:05.800)
I know what a stack trace is.
Lex Fridman (56:10.040)
I have all the fundamental concepts to be a programmer.
Jeff Atwood (56:12.040)
I just don't know Ruby.
Lex Fridman (56:13.040)
So I'm still on a higher level.
Jeff Atwood (56:14.800)
I'm not like a beginner beginner, like you're saying.
Lex Fridman (56:16.600)
I'm just like, I need to apply my programming concepts I already
Jeff Atwood (56:19.140)
know to Ruby.
Lex Fridman (56:20.360)
Well, so there's a question that's really interesting.
Lex Fridman (56:23.280)
So looking at Ruby, how do you go about learning enough
Lex Fridman (56:26.840)
that your intuition can be applied, carried over?
Jeff Atwood (56:29.640)
That's what I was trying to get to.
Lex Fridman (56:30.360)
It's like what I realized, particularly when I started
Jeff Atwood (56:31.600)
with just me and Robin, I realized if I bother Robin,
Lex Fridman (56:34.840)
I am now costing us productivity.
Jeff Atwood (56:37.120)
Every time I go to Robin, rather than building our first alpha
Lex Fridman (56:42.160)
version of discourse, he's now answering my stupid questions
Jeff Atwood (56:45.540)
about Ruby.
Lex Fridman (56:46.040)
Is that a good use of his time?
Lex Fridman (56:47.600)
Is that a good use of my time?
Lex Fridman (56:49.160)
And the answer to both of those was resoundingly no.
Jeff Atwood (56:53.080)
We were getting to an alpha, and it was pretty much just,
Lex Fridman (56:55.080)
OK, we'll hire more programmers.
Jeff Atwood (56:56.880)
We eventually hired Neil, and then eventually Sam,
Lex Fridman (57:00.240)
who came in as a cofounder.
Jeff Atwood (57:02.920)
Actually, it was Sam first, then Neil later.
Lex Fridman (57:05.000)
But the answer to the problem is just
Jeff Atwood (57:06.400)
hire other competent programmers.
Lex Fridman (57:08.200)
Now I shall pull myself up by my bootstraps
Lex Fridman (57:11.080)
and learn Ruby.
Lex Fridman (57:12.320)
But at some point, writing code becomes a liability to you
Jeff Atwood (57:15.960)
in terms of getting things done.
Lex Fridman (57:17.360)
There's so many other things that
Jeff Atwood (57:18.460)
go on in the project, like building the prototype.
Lex Fridman (57:20.800)
You mentioned, well, how do you, if you're not writing code,
Lex Fridman (57:23.120)
how does everybody keep focus on what are we building?
Lex Fridman (57:25.680)
Well, first, basic mockups and research.
Lex Fridman (57:28.440)
What do we even want to build?
Lex Fridman (57:30.160)
There's a little bit of that that goes on.
Lex Fridman (57:31.240)
But then very quickly, you get to the prototype stage.
Lex Fridman (57:32.800)
Like, build a prototype.
Jeff Atwood (57:33.760)
Let's iterate on the prototype really, really rapidly.
Lex Fridman (57:35.920)
And that's what we do with discourse.
Lex Fridman (57:36.840)
And that's what we demoed to get our seed funding
Lex Fridman (57:38.960)
for discourse was the alpha version of discourse
Jeff Atwood (57:42.320)
that we had running and ready to go.
Lex Fridman (57:43.800)
And it was very, it was bad.
Jeff Atwood (57:45.160)
I mean, it was, I'll just tell you it was bad.
Lex Fridman (57:47.360)
We have screenshots of it.
Jeff Atwood (57:48.440)
I'm just embarrassed to look at it now.
Lex Fridman (57:50.280)
But it was the prototype.
Jeff Atwood (57:51.320)
We were figuring out what's working, what's not working.
Lex Fridman (57:53.740)
Because there's such a broad gap between the way
Jeff Atwood (57:58.040)
you think things will work in your mind or even on paper
Lex Fridman (58:00.400)
and the way they work once you sit and live in the software,
Jeff Atwood (58:03.040)
like actually spend time living and breathing in software,
Lex Fridman (58:05.560)
so different.
Lex Fridman (58:06.720)
So my philosophy is get to a prototype.
Lex Fridman (58:10.800)
And then what you're really optimizing
Jeff Atwood (58:12.380)
for is speed of iteration, like how you can turn the crank.
Lex Fridman (58:14.800)
How quickly can we iterate?
Jeff Atwood (58:16.120)
That's the absolutely critical metric
Lex Fridman (58:18.000)
of any software project.
Lex Fridman (58:19.160)
And I had a tweet recently that people liked.
Lex Fridman (58:20.920)
And I totally, this is so fundamental to what I do,
Jeff Atwood (58:23.160)
is like if you want to measure the core competency of any
Lex Fridman (58:26.160)
software tech company, it's the speed at which somebody
Jeff Atwood (58:28.960)
can say, hey, we really need this word in the product.
Lex Fridman (58:31.200)
Change this word, right?
Jeff Atwood (58:32.280)
Because it will be more clear to the user.
Lex Fridman (58:34.280)
Like, instead of respond, it's reply or something.
Lex Fridman (58:36.400)
But there's some, from the conception of that idea
Lex Fridman (58:39.760)
to how quickly that single word can be changed in your software
Lex Fridman (58:42.640)
and rolled out to users, that is your life cycle.
Lex Fridman (58:44.920)
That's your health, your heartbeat.
Jeff Atwood (58:47.320)
If your heartbeat is like super slow, you're basically dead.
Lex Fridman (58:51.640)
No, seriously.
Jeff Atwood (58:52.200)
Like, if it takes two weeks or even a month
Lex Fridman (58:54.880)
to get that single word changed, everybody's like, oh my god,
Jeff Atwood (58:56.840)
this is a great idea.
Lex Fridman (58:57.760)
That word is so much clearer.
Jeff Atwood (58:59.000)
I'm talking about like a super, like everybody's
Lex Fridman (59:00.700)
on board for this change.
Jeff Atwood (59:01.660)
It's not like, let's just change a word because we're bored.
Lex Fridman (59:03.500)
It's like, this is an awesome change.
Lex Fridman (59:05.600)
And then it takes months to roll out.
Lex Fridman (59:07.000)
It's like, well, you're dead.
Jeff Atwood (59:08.120)
You can't iterate.
Lex Fridman (59:09.200)
You can't, how are you going to do anything, right?
Lex Fridman (59:12.360)
So anyway, about the heartbeat, it's
Lex Fridman (59:13.800)
like, get the prototype and then iterate on it.
Jeff Atwood (59:15.960)
That's what I view as the central tenet of modern software
Lex Fridman (59:19.880)
development.
Jeff Atwood (59:20.480)
That's fascinating that you put it that way.
Lex Fridman (59:22.480)
So I work and I build autonomous vehicles.
Lex Fridman (59:24.440)
And when you look at what, maybe compare Tesla
Lex Fridman (59:28.160)
to most other automakers, the heart beat for Tesla
Jeff Atwood (59:34.120)
is literally days now in terms of they can over the air
Lex Fridman (59:38.120)
deploy software updates to all their vehicles, which
Jeff Atwood (59:41.360)
is markedly different than every other automaker, which takes
Lex Fridman (59:46.040)
years to update a piece of software.
Lex Fridman (59:49.160)
And that's reflected in everything
Lex Fridman (59:52.120)
that's the final product.
Jeff Atwood (59:54.840)
That's reflected in really how slowly they
Lex Fridman (59:57.280)
adapt to the times.
Lex Fridman (59:58.200)
And to be clear, I'm not saying being a hummingbird
Lex Fridman (59:59.900)
is the goal either.
🔗 相关节目