back to indexJeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7
Chapters
0:0 Introduction
0:56 What motivates most programmers
1:52 Data is fun too
3:19 What motivates you
6:2 How do you have selfawareness
7:50 Selfcriticism
9:18 Passion
10:52 Discourse
15:51 What is Stack Overflow
19:18 What is Forum
27:53 Coding Horror
29:13 Writing Advice
30:33 Writing Process
31:31 NonLinear Decisions
33:57 The Birth of Stack Overflow
39:6 Anxiety on Stack Overflow
40:4 Stack Overflow QA
43:26 Duplicate Questions
49:14 Solo Programming
51:18 Being Effective at Programming
00:00:00.000 |
The following is a conversation with Jeff Atwood. 00:00:02.400 |
He is the co-founder of Stack Overflow and Stack Exchange, 00:00:05.840 |
websites that are visited by millions of people 00:00:09.560 |
Much like with Wikipedia, it is difficult to understate 00:00:13.880 |
the impact on global knowledge and productivity 00:00:19.520 |
Jeff is also the author of the famed blog Coding Horror 00:00:40.800 |
If you enjoy it, subscribe on YouTube, iTunes, 00:00:45.560 |
or simply connect with me on Twitter @LexFriedman, 00:00:50.960 |
And now, here's my conversation with Jeff Atwood. 00:00:56.160 |
Having co-created and managed for a few years 00:01:04.160 |
what do you think motivates most programmers? 00:01:08.600 |
Is it fame, fortune, glory, process of programming itself, 00:01:13.280 |
or is it the sense of belonging to a community? 00:01:23.840 |
and just solving a problem sort of like on your own almost, 00:01:28.320 |
although nobody really works alone in programming anymore. 00:01:44.320 |
you can do things that would take forever for a human, 00:01:46.560 |
but you can just do 'em like so many times and so often 00:01:52.000 |
- You're saying just the pure act of tinkering with the code 00:01:57.800 |
The joy, the struggle balance within the joy of overcoming 00:02:02.800 |
the brute force process of pain and suffering 00:02:05.920 |
that eventually leads to something that actually works? 00:02:10.080 |
Like there's this thing called the shuffling problem, 00:02:12.200 |
like the naive shuffle that most programmers write 00:02:14.960 |
has a huge flaw, and there's a lot of articles online 00:02:25.120 |
but the neat thing is the way to figure that out 00:02:29.000 |
and see like how many orientations of cards you get. 00:02:32.120 |
You should get an equal distribution of all the cards. 00:02:40.820 |
you just write a program that does it a billion times 00:02:43.240 |
and then see what the buckets look like of the data. 00:02:46.000 |
And the Monty Hall problem is another example of that, 00:02:50.040 |
and somebody gives you information about another door. 00:02:52.660 |
So the correct answer is you should always switch 00:02:54.960 |
in the Monty Hall problem, which is not intuitive 00:02:56.400 |
and it freaks people out all the time, right? 00:02:59.740 |
If you write a program that does the Monty Hall game 00:03:04.360 |
and then never switches, then always switches, 00:03:09.640 |
You don't have to figure out the answer algorithmically. 00:03:11.520 |
You can just brute force it out with data and say, 00:03:16.120 |
and these are the data buckets that I got from it, right? 00:03:18.920 |
- So empirically, you find it, but what's the joy of that? 00:03:22.280 |
So for you, for you personally, outside of family, 00:03:32.520 |
What I do at Discourse is like managery stuff, 00:03:39.240 |
as people who don't really do anything themselves. 00:03:42.320 |
But the weird thing about code is you realize 00:03:46.440 |
to direct other people lets you get more stuff done 00:04:02.000 |
before we get into programming, what makes a good manager? 00:04:05.820 |
- Well, I think a leader, it's all about leading by example, 00:04:14.560 |
'cause you realize that your kids are watching you 00:04:28.840 |
You don't actually see yourself the way other people see you. 00:04:32.760 |
in a way that other people really aren't going to be. 00:04:34.640 |
So, you know, that's one of the insights is, you know, 00:04:37.820 |
you gotta be really diligent about thinking like, 00:04:52.080 |
it's just, it's a bad example for other people. 00:04:57.440 |
The other one I believe is working really hard. 00:05:01.540 |
but like showing a real passion for the problem. 00:05:06.540 |
Like, you know, not necessarily your solution to the problem 00:05:15.400 |
how do you get people in groups to communicate 00:05:27.520 |
How do I get people to use complete sentences? 00:05:30.800 |
but like how do I get people to get along with each other, 00:05:33.080 |
right, like, and then solve whatever problem it is 00:05:38.320 |
or just like not hurt each other even, right? 00:05:40.040 |
Like maybe it's a discussion that doesn't really matter, 00:05:41.960 |
but are people like yelling at each other, right? 00:05:44.440 |
Like that's not the purpose of this kind of communication. 00:05:46.760 |
So I would say, you know, leadership is about, 00:05:53.000 |
doing the things that represent what you want to be 00:05:54.920 |
and making sure that you're actually doing those things. 00:06:05.200 |
So how do you have as a leader that self-awareness? 00:06:08.120 |
So you just said it's really hard to be self-aware. 00:06:10.240 |
So for you personally, or maybe for other leaders 00:06:14.240 |
how do you know both of the things you're doing 00:06:20.040 |
the way you speak to others, the way you behave, 00:06:26.440 |
One is like processing feedback that you're getting. 00:06:30.240 |
- Well, right, so are you getting feedback, right? 00:06:38.200 |
So it's not like one person can make a mistake 00:06:42.040 |
there can be misunderstandings, things like that. 00:06:43.240 |
So it's part of like group consensus of leadership 00:06:54.660 |
like if you have a community that's run by one person, 00:06:59.400 |
Something could happen to that person, you know, 00:07:01.200 |
something, you know, there's a lot of variables. 00:07:03.360 |
So like at first, when you think about leadership, 00:07:08.960 |
So giving each other feedback about the decisions 00:07:13.720 |
I think there's that little voice in your head, right? 00:07:15.680 |
Like, or your gut or wherever you wanna put it in your body. 00:07:22.420 |
Like I think most people who have any kind of moral compass 00:07:26.080 |
most people want to do the right thing, I do believe that. 00:07:28.440 |
I mean, there might be a handful of sociopaths out there 00:07:32.640 |
they want other people to think of them as a good person. 00:07:38.100 |
So you have that little voice that sort of the angel 00:07:40.200 |
and devil on your shoulder sort of talking to you 00:07:42.080 |
about like what you're doing, how you're doing, 00:07:43.480 |
how does it make you feel to make these decisions, right? 00:07:46.280 |
And I think having some attunement to that voice 00:07:59.740 |
So you're a little too self-critical for a lot of developers, 00:08:03.360 |
and especially when you have introverted personality. 00:08:11.800 |
is to do something that's potentially unpopular 00:08:23.200 |
Like, this is where blogging is really important, 00:08:26.040 |
Again, code, language is just another kind of code. 00:08:27.840 |
It's like, here is the program by which I arrived 00:08:30.820 |
at the conclusion that I'm gonna reach, right? 00:08:34.080 |
this is a decision, it's final, deal with it, right? 00:08:39.960 |
we've been thinking about this problem for a while. 00:08:53.040 |
but I can kinda see where you're coming from. 00:08:56.840 |
delivered from a cloud of flames in the sky, right? 00:09:00.200 |
It's like a human trying to reach some kind of consensus 00:09:03.360 |
about goals, and their goals might be different than yours. 00:09:06.720 |
But if you're making that clear, it's like, oh, 00:09:09.960 |
is 'cause we have totally different goals, right? 00:09:14.100 |
It's that we have radically different goals in mind 00:09:22.360 |
- Well, those are tied together to me, in my mind. 00:09:35.200 |
and every aspect of human communication, right? 00:09:37.120 |
And this has always been kind of a scary world for me. 00:09:40.880 |
I think Facebook is really good at execution. 00:09:43.280 |
They're very competent in terms of what they're doing. 00:09:48.200 |
in terms of, Facebook cares about Facebook, really. 00:09:51.080 |
They don't really care about you and your problems. 00:09:53.600 |
What they care about is how big they can make Facebook, 00:10:05.440 |
should have the right to own themselves, right? 00:10:11.080 |
That's their space where they can set the rules. 00:10:20.660 |
where all human communication is implicitly owned 00:10:33.280 |
And they also do this thing, I don't know if you know, 00:10:42.920 |
So they can see what's actually getting popular 00:10:46.000 |
They have low-level access to the network data 00:10:59.140 |
of all the different ways you can have communities? 00:11:09.240 |
and it's a very specific scalpel, very focused. 00:11:19.320 |
- Well, let me start from the very beginning. 00:11:26.800 |
And when we started, we thought it was discussions 00:11:29.080 |
because we looked at programming forums and other things, 00:11:33.520 |
which is a very narrow subset of human communication. 00:11:44.420 |
We had an idea of like, okay, these are things 00:11:47.840 |
Our goal was there was this site, Experts Exchange, 00:11:54.840 |
And a lot of people don't remember it anymore, 00:11:59.320 |
that you were trying to replace, then you've totally won. 00:12:02.640 |
So it was a place to get answers to programming questions, 00:12:05.640 |
but it wasn't clear if it was like focused Q&A, 00:12:11.360 |
We were like, okay, we'll take aspects of Dig and Reddit, 00:12:17.440 |
wiki-style stuff of like being able to edit posts, 00:12:19.600 |
not just your posts, but other people's posts 00:12:21.280 |
to make them better and keep them more up-to-date, 00:12:23.640 |
ownership of blogging of like, okay, this is me. 00:12:34.920 |
So you asked earlier, like what motivates programmers? 00:12:37.080 |
I think peer recognition motivates them a lot. 00:12:40.080 |
That was one of the key insights of Stack Overflow 00:12:41.880 |
was like recognition from your peers is why things get done. 00:12:45.000 |
Not necessarily money, not necessarily your boss, 00:12:47.880 |
this person really knows their stuff, has a lot of value. 00:12:53.320 |
So we were sort of Frankensteining a bunch of stuff together 00:12:56.320 |
in Stack Overflow, like stuff we had seen working 00:13:03.800 |
And over time, we realized it wasn't really discussion. 00:13:12.560 |
It was more like, okay, is it answering the question? 00:13:16.200 |
Or could it be an alternative answer to the same question? 00:13:18.740 |
'Cause there's usually more than one way to do it 00:13:26.400 |
where there would be like hundreds of answers. 00:13:28.400 |
And we're like, well, how can there be a programming question 00:13:36.160 |
those were not really questions in the traditional sense. 00:13:43.800 |
such as what's your favorite programming food? 00:13:46.720 |
What's the funniest programming cartoon you've seen? 00:13:49.240 |
And we had to sort of backfill a bunch of rules 00:13:53.040 |
Such as, is this a real problem you're facing? 00:13:55.120 |
Like, nobody goes to work and says, wow, I can't work 00:13:57.160 |
'cause I don't know what the funniest programming cartoon is 00:14:01.800 |
Right, it's not a real problem you're facing in your job. 00:14:05.400 |
And the second, like, what can you really learn from that? 00:14:10.160 |
Where you're just like, oh, I'll just browse some things 00:14:11.600 |
and oh, wow, did you know tree frogs only live three years? 00:14:24.560 |
and I wanna learn about stuff around this problem having. 00:14:26.840 |
Right, and it could be theory, it could be compiler theory, 00:14:34.240 |
that aspect of it that gives me, gets me to my answer. 00:14:40.880 |
as we sort of figured out what the heck it was 00:14:45.320 |
And a lot of people still complain about that. 00:14:48.960 |
"What Does Stack Overflow Want to Be When It Grows Up?" 00:14:55.260 |
And the system has trended towards strictness. 00:15:01.320 |
get reputation for stuff as they view as frivolous. 00:15:05.080 |
Because if you saw a programmer got like 500 upvotes 00:15:11.800 |
It's like, well, why do they have that reputation? 00:15:30.020 |
'Cause like, it's not correct to get reputation for that. 00:15:31.980 |
Versus here's a really gnarly regular expression problem. 00:15:36.040 |
And here's a really clever, insightful, detailed answer 00:15:40.520 |
laying out, oh, here's why you're seeing the behavior 00:15:47.920 |
Not so much for, wow, look at this funny thing I saw, right? 00:15:50.960 |
- Great, so there's this very specific Q&A format. 00:16:00.440 |
that Stack Overflow evolved to have a purpose. 00:16:12.200 |
- Well, part of it is based on the realization 00:16:14.960 |
for very specific subjects where there's sort of, 00:16:19.720 |
where answers can be kind of verified to be true. 00:16:22.520 |
Another form of that is there's the book of knowledge, 00:16:24.880 |
like the tome of knowledge that defines whatever it is. 00:16:28.720 |
You can refer to that book and it'll give you the answer. 00:16:33.120 |
where there's like semi-clear answers to things 00:16:37.840 |
Now, again, there's always more than one way to do it. 00:16:39.800 |
There's complete flexibility in the system around that. 00:16:41.960 |
But where it falls down is stuff like poker and Lego. 00:16:52.320 |
And people can propose Q&A topics, sample questions, 00:16:57.000 |
and if it gets enough support within the network, 00:17:00.120 |
So some of the ones we launched were poker and Lego, 00:17:03.400 |
Because, I mean, they might still be there lingering on 00:17:09.040 |
And some subjects work super well in the Stack Engine 00:17:16.000 |
It's not about what's the rule here in poker. 00:17:19.080 |
It's like, well, what kind of cigars do we like 00:17:23.440 |
Or what's a cool set of cards to use when playing poker? 00:17:31.200 |
It's more of a discussion around what's happening. 00:17:33.040 |
Like with Lego, same thing, like here's this cool Lego set 00:17:36.880 |
And I'm like, yeah, that's freaking awesome, right? 00:17:39.880 |
There's all these social components of the discussions 00:17:44.640 |
in Stack Overflow 'cause it's not about being social. 00:17:46.480 |
It's about problems that you're facing in your work 00:17:57.960 |
Like it's not a blocking problem in the world. 00:18:00.440 |
It's just an opportunity to hang out and discuss. 00:18:02.320 |
So discourse was a way to address that and say, 00:18:05.520 |
look, discussion form software was very, very bad. 00:18:10.720 |
And when I came out of Stack Overflow in late, early 2013, 00:18:19.840 |
I expected it improved in the four years since I last looked 00:18:24.560 |
And I was like, well, that's kind of terrible 00:18:30.600 |
you know, that they're just communities of interest, right? 00:18:36.600 |
hey Jeff, I wanna, you know, I have this startup, 00:18:41.040 |
And the first thing I would say to them is like, 00:18:48.960 |
like the people that are interested in this problem, 00:18:56.080 |
And then that's when I started playing sad trombone 00:19:02.760 |
patrons, whatever it is, it was all really bad. 00:19:05.160 |
You know, it was like stuff that I would be embarrassed 00:19:08.320 |
And yet that's where I felt they could get the biggest 00:19:12.760 |
for what they should be doing with their product, right? 00:19:15.560 |
It's from their users, from their community, right? 00:19:21.320 |
the, what is it, the dark matter of the internet, 00:19:42.760 |
there's 10 posts and you go to the next page. 00:19:49.040 |
we're doing a lot of research with Tesla vehicles 00:19:56.240 |
They pinged us about it, I don't think we got it, 00:19:57.680 |
but I really would have liked to gotten that one. 00:19:59.200 |
- But they've started before even 2012, I believe. 00:20:02.560 |
I mean, they've been running for a long time. 00:20:04.160 |
It's still an extremely rich source of information. 00:20:12.200 |
- I think there's a lot of power in connecting people 00:20:15.920 |
that love the same stuff around that specific topic. 00:20:22.200 |
just any human that's related to another human, right? 00:20:38.320 |
Like I love electric cars, specifically I love Tesla, right? 00:20:42.000 |
Like I love the way they approach the problem, 00:20:54.780 |
He was talking about how great Tesla cars were specifically, 00:21:00.720 |
And to me, that oatmeal post, if you read it, 00:21:02.680 |
is the genesis of pretty much all interest communities. 00:21:07.000 |
So for me, for example, there's yo-yos, right? 00:21:12.960 |
And I feel more connected to the yo-yo communities 00:21:15.280 |
than I do to friends that I don't see that often, right? 00:21:18.680 |
Like to me, the powerful thing is the interest graph. 00:21:21.800 |
And Facebook kind of dabbles in the interest graph. 00:21:27.040 |
But it's really about the relationship graph. 00:21:29.480 |
Like this is my coworker, this is my relative, 00:21:32.120 |
this is my friend, but not so much about the interest. 00:21:40.440 |
Like I said, leadership is about passion, right? 00:21:54.600 |
"you just get super passionate about a few things at a time, 00:21:57.480 |
"and you just go super deep in those things." 00:22:01.500 |
"I'll get into something and just be super into that 00:22:07.800 |
And that's how I enjoy experiencing the world, right? 00:22:18.920 |
where everything belongs to Facebook, at least I don't. 00:22:20.900 |
I want a world where communities can kind of own themselves, 00:22:26.320 |
'Cause community is also about ownership, right? 00:22:29.300 |
If you're meeting at the Barnes & Noble every Thursday, 00:22:40.500 |
your own clubhouse, you can set your own rules, 00:22:44.540 |
and just really generate a lot better information 00:22:47.820 |
than you could just hanging out at Barnes & Noble 00:22:57.140 |
You can take the software, you can install it anywhere, 00:23:05.920 |
who go super deep on a specific problem, right? 00:23:15.520 |
which is our internal, well, public community feedback site, 00:23:20.180 |
and just experiencing what the users were experiencing, 00:23:24.160 |
'cause they're the ones doing all the work in the system. 00:23:27.520 |
And there's that 90/10 rule of 90% of the feedback you get 00:23:30.520 |
is not really actionable for a variety of reasons. 00:23:32.320 |
It might be bad feedback, it might be crazy feedback, 00:23:34.560 |
it might be feedback you just can't act on right now. 00:23:39.680 |
where it's like feedback of really good improvements 00:23:42.360 |
to your core product that are not super hard to get to 00:23:48.640 |
It's like, "Oh my God, I never even thought of that." 00:23:52.500 |
And I can point to so many features of Stack Overflow 00:23:54.500 |
that we derive from Meta Stack Overflow feedback 00:24:02.040 |
I was like, "Oh my God, I never thought of that." 00:24:11.040 |
What's the process of getting a critical mass 00:24:17.120 |
Is it the tools like discourse that empower that community? 00:24:22.380 |
What's the key aspect of starting from one guy or gal 00:24:29.920 |
- I think when you're starting with an N of one, 00:24:36.960 |
Like somebody I really admire once said something 00:24:41.720 |
"You have to have something interesting to say 00:24:44.280 |
"and have an interesting way of saying it, right? 00:24:49.840 |
So that's the genesis is like you have to have 00:24:53.500 |
that's not exactly what everybody else is saying 00:24:59.260 |
And then as far as growing it, it's like ritual. 00:25:02.380 |
You have to, like say you're starting a blog, 00:25:04.240 |
you have to say, "Look, I'm gonna blog every week, 00:25:07.940 |
And you have to stick to that schedule, right? 00:25:09.940 |
Because until you do that for like several years, 00:25:14.340 |
Like it just takes years to get to where you need to get to 00:25:30.620 |
that pattern of participation within the community 00:25:41.900 |
which is really the genesis of Stack Overflow. 00:25:43.740 |
If you look at all my blog, it leads up to Stack Overflow, 00:25:46.240 |
which was, I have all this energy in my blog, 00:25:48.420 |
but I don't, like 40,000 people were subscribing to me. 00:25:55.220 |
"Take this ball of energy from my blog and do something." 00:26:00.540 |
"You're saying, look, you're part of this community. 00:26:05.460 |
Like we voted on the name for Stack Overflow on my blog. 00:26:08.020 |
Like we came up, and naming is super hard for a slide. 00:26:12.180 |
is coming up with a good name for stuff, right? 00:26:17.580 |
and Stack Overflow became the name of the site. 00:26:19.220 |
And all the early beta users of Stack Overflow 00:26:21.140 |
were audience of my blog plus Joel's blog, right? 00:26:24.540 |
So we started from, like, if you look at the genesis, 00:26:36.420 |
you know, programming wasn't the core output of the company. 00:26:40.780 |
And I just love this stuff, you know, to an absurd degree. 00:26:45.920 |
And eventually found an audience, eventually found Joel, 00:26:52.840 |
But it was that repetition of feeding back in 00:26:55.380 |
feedback from my blog comments, feedback from Joel, 00:26:58.060 |
feedback from the early Stack Overflow community. 00:27:04.100 |
They'll say, "Oh, cool, you're here in good faith. 00:27:05.380 |
"You're actually, you know, not listening to everything 00:27:07.140 |
"'cause that's impossible, but you're actually, 00:27:10.920 |
"you know, weighting our feedback in what you're doing." 00:27:14.900 |
Because who does all the work on Stack Overflow? 00:27:24.780 |
"Look, you know, we're trying to do a very specific thing 00:27:27.140 |
"We're not trying to solve all the world's problems. 00:27:28.980 |
"We're trying to solve this very specific Q&A problem 00:27:39.340 |
And programmers, that's an easy sell for the most part, 00:27:42.780 |
ridiculous systems of rules, like, constantly. 00:27:46.780 |
So they're very, "Oh yeah, super strict system of rules 00:27:53.640 |
- So you're making it sound easy, but in 2004, 00:27:57.980 |
In 2004, you started the blog, Coding Horror. 00:28:05.200 |
it's from a book by Steve McConnell, Code Complete, 00:28:06.700 |
which is one of my favorite programming books, 00:28:08.220 |
still probably my number one programming book 00:28:13.820 |
I don't always do smart things when I start stuff, 00:28:16.040 |
I contacted Steve and said, "Hey, I really like this." 00:28:18.340 |
It was a sidebar illustration indicating danger in code. 00:28:23.860 |
And I love that illustration 'cause it spoke to me. 00:28:41.140 |
"I need to constantly hold that mirror up and look 00:28:54.180 |
"I'm thinking through all the things that I could do wrong 00:29:00.540 |
So that sidebar illustration, I loved it so much. 00:29:03.340 |
I wrote Steve before I started my blog and said, 00:29:06.660 |
"'cause I just really like this illustration?" 00:29:08.380 |
And Steve was kind enough to give me permission to do that 00:29:18.240 |
You look at Stephen King, his book on writing, 00:29:30.040 |
I mean, it's a hard process of writing, right? 00:29:36.840 |
Doing the work, even when you're, every week, 00:29:38.680 |
you're like, "Okay, that blog post wasn't very good," 00:29:53.320 |
because this is how good work gets out into the world, 00:29:55.840 |
but you have to be pretty strict about saying, 00:29:59.080 |
"I'm selfish in the sense that I have to do this for me." 00:30:03.480 |
You mentioned Stephen King, his book on writing, 00:30:08.680 |
One of the best pieces of advice for writing anything 00:30:20.860 |
'cause you have more time to think about what you're saying, 00:30:24.340 |
And I think that's probably the single best writing advice 00:30:27.100 |
I can give anyone, just read it over and over out loud, 00:30:29.760 |
make sure it sounds like something you would normally say, 00:30:35.620 |
So there's usually a pretty good idea behind the blog post. 00:30:43.300 |
that there's so many interesting things in the world. 00:30:46.200 |
Like, I mean, my God, the world is amazing, right? 00:30:48.820 |
Like, you can never write about everything that's going on 00:30:52.840 |
but if you can't come up with, like, let's say, 00:30:58.400 |
'cause the world is full of just super interesting stuff. 00:31:00.760 |
And one great way to mine stuff is go back to old books 00:31:04.280 |
'cause they bring up old stuff that's still super relevant. 00:31:08.200 |
'cause I was reading classic programming books 00:31:17.300 |
but it gives you something interesting to talk about 00:31:19.860 |
Like, you don't have to go, "What should I talk about?" 00:31:21.940 |
So just go dig up some old classic programming books 00:31:24.620 |
and find something that, "Oh, wow, that's interesting." 00:31:30.980 |
- So pull a couple of sentences from that book 00:31:41.900 |
a significant amount of money to sell the blog. 00:31:45.960 |
What were all the elements you were thinking about? 00:31:50.560 |
It seems like there's a lot of nonlinear decisions 00:32:00.320 |
and I feel like they're early programmer books 00:32:01.760 |
'cause they're all about if-then statements, right? 00:32:08.960 |
the classic "Choose Your Own Adventure" books 00:32:13.980 |
So part of the game is like, oh, I got a bad outcome. 00:32:36.380 |
There was a lot of RSS readers that I had discovered. 00:32:42.480 |
He's like, oh, I really wanna buy your blog for like, 00:32:47.040 |
It might have been like 80,000, but it was a lot, right? 00:32:51.160 |
like, I would have a year's worth of salary all at once. 00:32:54.480 |
So I had to really think about, like, well, you know, 00:32:57.760 |
and I remember talking to people at the time. 00:32:59.880 |
But then at the other end, like, I really like my blog, 00:33:15.540 |
is whenever you're looking at a set of decisions, 00:33:19.860 |
you gotta pick the thing that's a little scarier 00:33:31.340 |
You're not choosing the thing that's gonna help you grow. 00:33:36.120 |
I was like, well, no, let's just see where this is going, 00:33:45.320 |
Because imagine how different the world would have been 00:33:49.000 |
It's like there probably wouldn't be Stack Overflow. 00:33:51.720 |
- You know, a lot of other stuff would have changed. 00:34:01.740 |
I think there's a specific, some more general questions 00:34:12.080 |
So what's the, you know, it's one, two, three guys, 00:34:28.080 |
So I think the key thing initially is there is a problem. 00:34:40.200 |
look, Joel, I have all this energy behind my blog. 00:34:41.760 |
I wanna do something, I wanna build something, 00:34:52.080 |
Which is another reason why I like the community feedback, 00:34:54.080 |
'cause they blue-sky all day long for you, right? 00:35:14.280 |
It feeds into like, we can make a creative commons. 00:35:16.680 |
So I think the core is to have a really good idea 00:35:18.520 |
that you feel very strongly about in the beginning, 00:35:32.960 |
Like whether it's problem-solving, startup, whatever. 00:35:35.500 |
Forms are such a great building block of online community, 00:35:44.160 |
We have to have software that you can be proud of. 00:35:50.360 |
I would be proud to have the software on my site. 00:35:57.160 |
there needs to be a good solution for communities. 00:36:02.720 |
genesis of an idea you feel super strongly about, right? 00:36:06.680 |
Like Joel was already super excited about the idea. 00:36:10.000 |
So with the forum software, I was posting on Twitter. 00:36:21.480 |
It's still very, very funny of like forum behavior, 00:36:27.720 |
Like the behavior's a little different in the era of Twitter, 00:36:34.840 |
So it was like a game about forums with a forum attached. 00:36:39.360 |
And the founder of that company or that project, 00:36:43.040 |
contacted me, this guy Robin Ward from Toronto. 00:36:45.680 |
He said, "Hey, I saw you've been talking about forums. 00:36:49.260 |
"I'd still love to build really good forum software 00:36:51.540 |
"'cause I don't think anything out there's any good." 00:36:54.200 |
At that point, I was like, we're starting a company. 00:36:55.880 |
Because I couldn't have wished for a better person 00:37:02.320 |
I mean, Joel is a legend in the industry, right? 00:37:10.560 |
It's like having an idea you're super excited about 00:37:14.600 |
'Cause again, you get that dual leadership, right? 00:37:27.520 |
whether it's you programming or somebody else-- 00:37:32.880 |
'Cause a lot of people look at its successes. 00:37:38.360 |
Show me the failures 'cause that is what's interesting. 00:37:43.480 |
But they failed, but they probably failed for reasons 00:37:46.600 |
that weren't directly about the quality of their idea, right? 00:38:04.800 |
when we did Stack Overflow, we're like, okay, 00:38:08.000 |
well, I really like elements of voting and digging Reddit. 00:38:10.040 |
I like the Wikipedia, everything's up to date. 00:38:14.340 |
that like has horrible out-of-date information. 00:38:19.400 |
Blogging, the idea of ownership is so powerful, right? 00:38:25.500 |
Like all these concepts we were rolling together, 00:38:27.740 |
researching all the things that were out there 00:38:30.660 |
and trying to like fold them into that, again, 00:38:32.420 |
that Frankenstein's monster of what Stack Overflow is. 00:38:40.020 |
There's reasons people complain about Stack Overflow 00:38:44.640 |
Why are you guys always closing my questions? 00:38:59.820 |
and nobody will have to get their feelings hurt 00:39:06.640 |
- So this is an interesting point and a small tangent. 00:39:18.320 |
something very specific to something I'm working on. 00:39:25.000 |
isn't about, is to write a question that's not about you. 00:39:48.680 |
The long line of people are gonna come and say, 00:40:00.920 |
How do you know that nobody's ever gonna have 00:40:06.800 |
- Do you think that anxiety of asking the question, 00:40:25.800 |
- I don't think Stack Overflow can totally change 00:40:46.520 |
that's the point at which you need the most help. 00:40:50.760 |
But the good news is they're working on this, 00:40:53.240 |
and it's gonna be a more wizard-based format. 00:41:17.560 |
But one of those steps in that wizard of asking 00:41:22.660 |
Can you put me in a queue for special mentoring, right? 00:41:28.800 |
Like, I don't have any objection to that at all 00:41:47.320 |
But there's a certain big city ethos that we started with. 00:41:51.080 |
You don't come to New York City and expect them to be, 00:42:01.760 |
New York City has a reputation for being rude, 00:42:06.100 |
People are just like going about their business, right? 00:42:14.660 |
you're gonna ask the best possible question, right? 00:42:21.420 |
with a lot of detail about why you're doing it, 00:42:28.580 |
And this rubs people sometimes the wrong way. 00:42:33.700 |
I want just a more chill place for beginners. 00:42:49.660 |
- But that's not really representative, right? 00:43:00.260 |
like a playground you can experiment in and test, 00:43:03.300 |
and all this stuff that we just don't give people 00:43:11.780 |
if there was a site like that on the internet, 00:43:17.140 |
I'm not there, I'm not making those decisions. 00:43:24.500 |
'cause I know I gotta do my best work, right? 00:43:33.820 |
It's a really difficult problem that you highlight. 00:44:02.840 |
Or is it a totally hopeless, difficult, impossible task? 00:44:06.240 |
- I think it's a very, very hard computer science problem, 00:44:13.200 |
you'd have two questions that were functionally identical, 00:44:15.480 |
and one question had like zero words in common 00:44:33.920 |
'cause if there's five versions with different words, 00:44:39.600 |
It's like, okay, this is duplicate, no worries. 00:44:41.880 |
Here's the answer that you wanted over here on this, 00:44:48.000 |
rather than having 10 copies of the question and the answer. 00:44:50.680 |
Because if you have 10 copies of the question and answer, 00:44:54.120 |
which programmers hate, as I previously mentioned. 00:45:02.160 |
so why are you getting reputation for the same answer 00:45:07.720 |
So the reputation system itself adds tension to the system, 00:45:11.880 |
in that the people who have a lot of reputation 00:45:14.000 |
become very incentivized to enforce the reputation system. 00:45:18.880 |
I know it sounds weird, but for the most part, 00:45:28.240 |
you're familiar with loose typing versus strict typing, 00:45:30.800 |
right, the idea that you can declare a variable, 00:45:40.720 |
And you're like, cool, awesome, simpler, right? 00:45:48.160 |
which is testing your program's validity after the fact 00:45:54.760 |
And now you have this thing called TypeScript 00:45:56.680 |
from Microsoft, from the guy who built C# Anders, 00:45:59.560 |
who's one of the greatest minds in software development, 00:46:10.000 |
we deployed TypeScript and found 50 latent bugs 00:46:25.680 |
No, it's no, no, strictness produces better results. 00:46:31.680 |
I would say you almost universally have consensus now 00:46:33.840 |
is basically correct, should be that way in every language. 00:46:40.600 |
you didn't tell me that duck was an integer, right? 00:46:43.780 |
Or maybe you mistyped, you typed deck, right, 00:46:46.520 |
You never know, this happens all the time, right? 00:46:50.760 |
that the strictness of the system is correct. 00:46:52.640 |
Now, that doesn't mean cruel, that doesn't mean mean, 00:46:54.980 |
that doesn't mean angry, it just means strict, okay? 00:46:57.760 |
So I think where there's misunderstanding is, 00:47:05.080 |
Well, who do programmers work with all day long? 00:47:15.720 |
And what is the computer except the world's biggest asshole? 00:47:19.200 |
Because the computer has no time for your bullshit. 00:47:25.200 |
One semicolon has crashed space missions, right? 00:47:28.960 |
So you begin to internalize that, you begin to think, 00:47:31.200 |
oh, my coworker, the computer, is super strict 00:47:41.800 |
and I have to accede to its terms on everything. 00:47:46.320 |
and you start to think, oh, well, being really strict 00:47:50.360 |
An error of error code 56249 is a completely good error 00:47:53.720 |
message 'cause that's what the computer gave me, right? 00:47:56.040 |
So you kind of forget to be a person at some level. 00:48:01.360 |
internalize criminals and kind of are criminals themselves? 00:48:04.140 |
Like this trope of the master detective is good 00:48:10.360 |
Really good programmers think like the computer 00:48:15.880 |
you become the computer and you kind of become 00:48:18.160 |
a jerk to everybody because that's what you've internalized. 00:48:21.640 |
- You're almost not a jerk, but you have no patience 00:48:26.160 |
- It's not out of a sense of meanness, it's accidental. 00:48:39.680 |
Like, what could I do to fix, nope, wrong, next question. 00:48:43.640 |
Right, like that's normal for the computer, right? 00:48:47.720 |
Like, I don't know if you remember in Saturday Night Live, 00:48:51.160 |
like in the '90s, they had this character who was an IT guy. 00:49:07.520 |
But anyway, that's always been the perception, right? 00:49:12.480 |
It's like, oh, you're wrong, out of the way, you know? 00:49:14.820 |
- You've written so many blog posts about programming, 00:49:25.600 |
let's start with what makes a good solo programmer? 00:49:29.280 |
- Well, I don't think you should be a solo programmer. 00:49:33.280 |
it's kinda like what I talked about, well, not on mic, 00:49:40.000 |
"Masters of Doom," which is a fantastic book, 00:49:42.080 |
and anybody listening to this who hasn't read it, 00:49:45.760 |
is that at the time they were working on stuff 00:49:50.680 |
they didn't have the resources that we have today. 00:49:56.600 |
they didn't have places to go to get people to help them. 00:50:03.700 |
to do this stuff, 'cause you had to be a genius 00:50:15.480 |
You have to be good at researching stuff online, 00:50:19.180 |
really good questions that are really well researched, 00:50:22.320 |
for three hours before I wrote this question. 00:50:25.600 |
because that's what's gonna make you good, right? 00:50:28.080 |
To me, this is the big difference between programming 00:50:32.080 |
is you kinda had to be by yourself back then. 00:50:37.840 |
when I was learning Visual Basic for Windows, 00:50:41.240 |
I would call the Microsoft helpline on the phone 00:50:46.960 |
So I would go and call, and they had these huge phone banks, 00:50:49.600 |
and I'm like, can you imagine how alien that is now? 00:50:53.480 |
So there was just nowhere else to go when you got stuck. 00:51:03.280 |
that said the C++ version seven came with 10,000 pages 00:51:17.840 |
You didn't have anywhere to go to answer these questions. 00:51:26.520 |
that you're the best programmer in the world. 00:51:29.680 |
And so always kind of just looking to improve, 00:51:34.000 |
to become a better programmer than you were yesterday. 00:51:39.160 |
and as a thinker, designer around programming 00:51:52.600 |
you have to kind of stop writing code to be effective, 00:51:54.680 |
which is kind of disturbing, 'cause you really love it. 00:51:58.160 |
But you realize being effective at programming 00:52:02.200 |
in the general sense doesn't mean writing code. 00:52:05.080 |
And a lot of times you can be much more successful 00:52:08.760 |
in terms of just solving the problems you have. 00:52:10.320 |
Essentially hiring people that are really good 00:52:12.280 |
and setting them free and giving them basic direction 00:52:19.600 |
aren't necessarily solved through really gnarly code. 00:52:31.840 |
the main insight I have is to succeed as a programmer, 00:52:37.480 |
That's going to sound discouraging, probably, 00:52:39.080 |
to people who are hearing, but I don't mean it that way. 00:52:49.920 |
wow, we can abstract across the architecture. 00:52:54.560 |
or whatever, X86 or whatever else is out there. 00:53:00.040 |
Like you're looking at Python, Ruby, interpreted languages. 00:53:08.480 |
It's like, well, you abstract in spoken language 00:53:12.040 |
Like you're sort of inspiring people to get things done, 00:53:14.560 |
giving them guidance, like, what if we did this? 00:53:17.440 |
You're writing in the highest level language that there is, 00:53:25.760 |
And I think Patrick McKenzie, patio 11 on Hacker News 00:53:30.760 |
and works at Stripe, has a great post about this, 00:53:40.720 |
And again, I apologize, this is sound discouraging. 00:53:45.200 |
Because all the stuff that goes on around the code, 00:53:51.000 |
it was about, wow, programming is about people 00:53:56.640 |
But it's about, can these people even get along together? 00:54:00.800 |
Can you even explain to me what it is you're working on? 00:54:05.320 |
Another classic programming book, which again, 00:54:07.480 |
up there with CodeComplete, please read Peopleware. 00:54:21.600 |
once you get a certain skill level in programming, 00:54:23.000 |
you can pretty much solve any reasonable problem 00:54:26.240 |
You're not writing algorithms from scratch, right? 00:54:29.200 |
So any sort of reasonable problem put in front of you, 00:54:32.200 |
But what you can't solve is our manager is a total jerk. 00:54:43.600 |
oh, we had to use this stupid framework I don't like, 00:55:00.080 |
because everybody's so stressed out and freaked out, right? 00:55:02.280 |
These are the problems that you have to attack. 00:55:06.160 |
higher level abstractions, as you've developed 00:55:08.200 |
as a programmer to higher, higher level abstractions 00:55:12.200 |
you're also the guy who kind of preached building it, 00:55:41.520 |
- Well, no, I mean, there is always that paranoia, 00:55:46.240 |
But for me, when we started the Discourse project, 00:55:48.240 |
it was Ruby, which I didn't really know Ruby. 00:55:51.560 |
and this is another valuable observation from Stack Overflow, 00:55:53.800 |
you can be super proficient, for example, C#, 00:55:56.000 |
which I was working in, that's when we built Stack Overflow, 00:55:59.360 |
and then switch to Ruby, and you're a newbie again. 00:56:10.040 |
I have all the fundamental concepts to be a programmer, 00:56:14.800 |
I'm not like a beginner, beginner, like you're saying. 00:56:16.600 |
I'm just like, I need to apply my programming concepts 00:56:20.360 |
- Well, so there's a question that's really interesting. 00:56:23.240 |
So looking at Ruby, how do you go about learning enough 00:56:26.880 |
that your intuition can be applied, carried over? 00:56:33.320 |
if I bother Robin, I am now costing us productivity. 00:56:37.080 |
Every time I go to Robin, rather than building 00:56:43.800 |
he's now answering my stupid questions about Ruby. 00:56:49.160 |
And the answer to both of those was resoundingly no. 00:56:51.960 |
We were getting to an alpha, and it was pretty much just, 00:56:56.720 |
Like we eventually hired Neil, and then eventually Sam, 00:57:07.480 |
It's not like teach, now I shall pull myself up 00:57:12.360 |
But at some point, writing code becomes a liability to you 00:57:17.400 |
There's so many other things that go on in the project, 00:57:20.840 |
You mentioned, well, how do you, if you're not writing code, 00:57:23.160 |
how does everybody keep focused on what are we building? 00:57:25.720 |
Well, first, basic mock-ups and research, right? 00:57:31.240 |
But then very quickly, you get to the prototype stage. 00:57:32.800 |
Like build a prototype, let's iterate on the prototype 00:57:36.880 |
And that's what we demoed to get our seed funding 00:57:38.960 |
for Discourse was the alpha version of Discourse 00:57:45.160 |
I mean, it was, I'll just tell you it was bad. 00:57:47.640 |
We have screenshots of it, and I'm just like embarrassed 00:57:56.840 |
the way you think things will work in your mind 00:58:03.080 |
like actually spend time living and breathing on software, 00:58:12.560 |
is speed of iteration, like how you can turn the crank, 00:58:19.000 |
And I had a tweet recently that people liked, 00:58:20.920 |
and I totally, this is so fundamental to what I do, 00:58:23.140 |
is like if you wanna measure the core competency 00:58:36.480 |
But there's some, from the conception of that idea 00:58:39.800 |
to how quickly that single word can be changed 00:58:56.180 |
they're like, oh my God, this is a great idea. 00:59:01.620 |
It's not like, let's just change a word 'cause we're bored. 00:59:09.140 |
You can't, how are you gonna do anything, right? 00:59:13.660 |
it's like get the prototype and then iterate on it. 00:59:20.420 |
- That's fascinating that you put it that way. 00:59:21.940 |
It's actually, so I work in, I build autonomous vehicles. 00:59:27.100 |
maybe compare Tesla to most other automakers, 00:59:29.760 |
the psych, the whatever, the heartbeat for Tesla 00:59:34.080 |
is literally days now in terms of they can over the air 00:59:38.100 |
deploy software updates to all their vehicles, 00:59:41.140 |
which is markedly different than every other automaker, 00:59:44.780 |
which takes years to update a piece of software. 00:59:49.100 |
And so, and that's reflected in everything that's, 00:59:58.180 |
- And to be clear, I'm not saying being a hummingbird 01:00:00.740 |
It's like, you don't want a heartbeat that's like so fast. 01:00:08.700 |
decide what that means, but it has to be healthy. 01:00:15.100 |
You make mistakes, you roll it out, you live with it. 01:00:19.900 |
Oh my gosh, this could be even better if we did Y, right? 01:00:22.700 |
You turn the crank and then the more you do that, 01:00:24.980 |
the faster you get ahead of your competitors ultimately 01:00:32.640 |
Well, within a year, you're gonna be miles away 01:00:37.860 |
And plus users, like as a software developer, 01:00:42.780 |
because I don't understand people get super pissed off 01:00:45.580 |
when like, oh, they changed the software on me. 01:00:55.300 |
and become something that is greater than it is now. 01:00:58.420 |
Now granted, there's some changes that suck, I admit. 01:01:08.420 |
'cause it's like, well, you're fighting the essence 01:01:15.420 |
but like embrace it to a healthy cycle of your heartbeat. 01:01:18.180 |
- So you talk about that people really don't change. 01:01:22.500 |
That's why probably a lot of the stuff you write about 01:01:37.020 |
Like all those things you've learned about people 01:01:40.660 |
Whereas if you learn the latest JavaScript framework, 01:01:43.160 |
that's gonna be good for like two years, right? 01:01:46.300 |
So, but if you look at the future of programming, 01:01:54.340 |
Do you, what do you see as the future of programming? 01:02:16.340 |
Like I didn't learn anything about source control. 01:02:18.540 |
Now granted, I graduated from college in 1992, 01:02:31.540 |
That is so fundamental to working with other programmers, 01:02:34.580 |
working in a way that you don't lose your work. 01:02:43.900 |
which I think was an incredibly smart acquisition move 01:02:46.940 |
Now they have anybody who wants like reasonable 01:02:52.380 |
There's tons of walkthroughs, tons of tutorials. 01:03:01.600 |
Like it's massively advanced over what it was. 01:03:04.820 |
Now as to whether programming is significantly different, 01:03:09.700 |
but I think the baseline of like what we view 01:03:17.500 |
That's one of the fundamentals that has gotten, 01:03:19.060 |
I mean, hundreds of orders of magnitude better 01:03:24.940 |
Let me introduce two things that maybe you can comment on. 01:03:31.020 |
So that could fundamentally transform what programming is, 01:03:39.100 |
And the other one is artificial intelligence, 01:03:51.980 |
is using the intelligence that's inside your skull 01:03:59.500 |
is that it does some of the useful parts for you 01:04:11.580 |
And do you see AI as potentially changing programming? 01:04:28.460 |
I mean, that is such a huge change in society. 01:04:31.300 |
I think we're still dealing with a lot of the positive 01:04:40.300 |
But it's like, be careful what you ask for, right? 01:04:51.140 |
So to me, that's the central focus of the smartphone 01:04:53.100 |
is just that it puts a computer in front of everyone, 01:04:55.660 |
granted a small, small-ish touchscreen computer. 01:05:03.020 |
come to subscribe to the Unix view of the world 01:05:06.180 |
It's like, you want to teach these basic command line things, 01:05:14.380 |
I don't think there's any magical, like, visual programming 01:05:26.380 |
That's gonna be the way it is for a long, long time. 01:05:28.900 |
And we'll continue to, like I said, raise the baseline. 01:05:31.560 |
The tools will get better, it'll get simpler, 01:05:32.980 |
but it's still fundamentally gonna be command line tools, 01:05:37.140 |
That's kind of it for the foreseeable future. 01:05:39.180 |
I'm not seeing any visual programming stuff on the horizon. 01:05:44.060 |
that would be directly analogous to programming? 01:05:49.580 |
- So, not necessarily analogous to programming, 01:06:23.620 |
So I would say smartphones have mostly a cultural shift, 01:06:27.980 |
Now, your other question was about artificial intelligence 01:06:34.620 |
I think artificial intelligence is kind of overselling it 01:06:37.860 |
It's more like, people are predictable, right? 01:06:44.540 |
that's in a lot of big commercial websites is, 01:06:51.140 |
and then an hour later, you log in from San Francisco. 01:06:56.560 |
How did you get from New York to San Francisco in one hour? 01:07:07.300 |
how did you in one hour get 2,000 miles, right? 01:07:20.940 |
but nobody, I mean, unless you're a traveling salesman 01:07:22.980 |
that's literally traveling the world every day, 01:07:25.500 |
like, there's so much repetition and predictability 01:07:29.620 |
And I think good software anticipates your needs. 01:07:31.860 |
Like, for example, Google, I think it's called Google Now 01:07:34.160 |
or whatever that Google thing is that predicts your commute 01:07:39.140 |
Well, that's probably where you work, that kind of stuff. 01:07:42.080 |
I do think computers can get a lot better at that, 01:07:43.760 |
but I hesitate to call it like full-blown AI. 01:08:00.440 |
that turn it into predictions of anticipating your needs, 01:08:08.580 |
'cause that's usually what we do this time of day, right? 01:08:10.760 |
- In the context of actually the active programming, 01:08:18.800 |
'cause there's a lot of repetition in programming, right? 01:08:20.680 |
Oh, you know, Clippy would be the bad example of, 01:08:23.200 |
oh, I see, it looks like you're writing a for loop. 01:08:27.800 |
Like, and actually libraries are kind of like that, right? 01:08:35.400 |
it's like, well, you'd use one of the existing ones 01:08:37.520 |
that we have that's already troubleshot, right? 01:08:42.280 |
building better Lego bricks, bigger Lego bricks 01:08:50.480 |
Like WordPress, for example, to me is like a tool 01:08:53.160 |
for somebody who isn't a programmer to do something. 01:08:55.840 |
I mean, you can turn WordPress into anything. 01:08:57.640 |
It's kind of crazy actually through plugins, right? 01:09:01.320 |
It's just Lego bricks stacking WordPress elements, right? 01:09:08.480 |
what I'm seeing like, there'll be more gluing 01:09:20.080 |
Do you see PHP and these kind of old remnants 01:09:44.100 |
I mean, I was a big believer in Windows early on 01:09:48.700 |
But over time I've completely flipped on that 01:09:50.060 |
where I was like, okay, the Unix guys were right. 01:09:51.660 |
And pretty much Microsoft and Windows were kind of wrong, 01:09:59.140 |
like Apple built on Unix, effectively Darwin. 01:10:02.620 |
And on the desktop it's a slightly different story, 01:10:04.540 |
but on the server side where you're gonna be programming, 01:10:06.920 |
now it's a question of where the programming's gonna be. 01:10:08.420 |
Is it gonna be a lot more like client-side programming? 01:10:10.680 |
'Cause technically, Discourse is client-side programming. 01:10:18.200 |
So we're really using a lot more local computing power. 01:10:22.300 |
We have to display the posts on the screen and so forth. 01:10:24.260 |
But in terms of like sorting and a lot of the basic stuff, 01:10:32.980 |
I would say, yeah, the Unix philosophy definitely won. 01:10:38.580 |
but it's still, if you peel away one or two layers, 01:10:49.060 |
on the Microsoft side in terms of backend development. 01:10:56.900 |
I mean, the discourse, continuing the discourse 01:11:01.820 |
in trying to improve conversation on the web? 01:11:05.620 |
and originally I called it a five-year project, 01:11:07.020 |
then really quickly revised that to a 10-year project. 01:11:16.100 |
This is the part where it starts getting good. 01:11:18.500 |
Discourse, there's any project you build in software, 01:11:29.900 |
It's not about V1 being perfect, 'cause that's ridiculous. 01:11:32.760 |
It's about V1, then let's get really good at V1.1, 01:11:37.960 |
And I think we're iterating like crazy on discourse 01:11:40.100 |
to the point that like, it's a really good product now. 01:11:50.740 |
Although the very question is kind of archaic now. 01:12:04.180 |
But if someone said, hey, I need a group of people 01:12:10.380 |
That should be the default answer for people. 01:12:21.500 |
It used to be $10 a month for one gigabyte of RAM, 01:12:54.440 |
- And there's a WordPress model of WordPress.org, 01:12:57.680 |
Is there a central hosting for discourse, or no? 01:13:01.840 |
We're not strictly segmenting into the open source 01:13:29.960 |
I don't wanna be the only person that hosts discourse. 01:13:34.200 |
But it is a primary way for us to build a business, 01:13:37.600 |
I mean, the business is going really, really well 01:13:44.280 |
as a company that's basically funded on advertisement. 01:13:53.480 |
So you'd be extremely critical on what ads are, 01:14:01.160 |
it's connecting you to what you would want to explore. 01:14:05.640 |
So it's like related posts or related content. 01:14:10.160 |
So discourse is connecting people based on their interest. 01:14:15.160 |
It seems like a place where advertisement at its best 01:14:21.760 |
Is that something that you're considering thinking about 01:14:24.880 |
as a way to financially support the platform? 01:14:56.520 |
So plus I think it's rational to want to support 01:15:08.200 |
like 30, 40 megabytes of stuff just to serve you ads. 01:15:11.600 |
- Yeah, it feels like ads now are like the experts exchange 01:15:19.480 |
- Oh, there's so many companies in ad tech, though. 01:15:22.800 |
Have you seen those logo charts of just the whole page? 01:15:27.800 |
But since you brought it up, I do want to point out 01:15:34.920 |
It's too diluted, it's too weird, it doesn't pay well, 01:15:42.800 |
it doesn't actually work that well in practice. 01:15:48.400 |
the stuff you would be interested in, awesome. 01:16:03.040 |
But you know what does work is subscriptions, 01:16:10.600 |
of like just, oh, here's a cool yo-yo, click, 01:16:17.160 |
I mean, 'cause you saw the yo-yo on that site, 01:16:19.120 |
and you click through, and you bought it, right? 01:16:25.960 |
In fact, a site that I used to participate on a lot, 01:16:29.860 |
One of the things, I got them to switch to discourse. 01:16:32.440 |
I basically paid them to switch to discourse, 01:16:34.180 |
'cause I was like, look, you guys gotta switch. 01:16:35.320 |
I can't come here anymore, this is terrible software. 01:16:40.120 |
like, you're serving people ads that they hate. 01:16:45.320 |
Go full on Patreon, do the Amazon affiliates thing, 01:16:51.120 |
and just do that, and just triple down on that stuff. 01:16:59.480 |
I mean, definitely not working, at least on discourse. 01:17:12.080 |
Can you describe what a mechanical keyboard is, 01:17:14.520 |
and why is it something that makes you happy? 01:17:16.720 |
- Well, you know, this is another fetish item, really. 01:17:20.140 |
You can do programming on any kind of keyboard, right? 01:17:27.040 |
I mean, if you look back at the early days of computing, 01:17:40.340 |
All that really says is, look, I care really about keyboards, 01:17:46.220 |
So it's just like having a nice mic for this podcast. 01:17:53.960 |
I get that little click, so oh, and it feels good. 01:17:57.960 |
It's like, wow, I care enough about programming 01:18:00.260 |
that I care about the tool, the primary tool, 01:18:03.280 |
make sure it's as good as it feels good to use for me, 01:18:08.320 |
So to be honest, it's a little bit of a fetish item, 01:18:13.600 |
it indicates that you care about the fundamentals, 01:18:15.280 |
'cause you know what makes you a good programmer? 01:18:20.600 |
So a core skill is just being able to type fast enough 01:18:23.480 |
to get your ideas out of your head, into the code base. 01:18:50.680 |
like Massdrop has gone ballistic with this stuff. 01:18:56.880 |
And there's some other guy I follow on Twitter, 01:18:58.160 |
I used to write for the site, The Tech Report, 01:19:07.160 |
That's like, how many keyboards does this guy have? 01:19:20.640 |
who doesn't have a mechanical to research it, 01:19:35.800 |
- Yeah, it's not necessary in the strictest sense, 01:19:38.920 |
but ain't nothing necessary if you think about it, right?