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