 Hi, I'm Jessica Maurahan. I have been a software engineer for about 16 years. I'm a software engineer and an engineering lead at Skillshare, which means that in addition to writing code, I help mentor and lead the other engineers. I go to conferences and speak about four to six times a year about testing, code quality, best practices, all that kind of stuff. But today we're gonna talk about something a little bit different. And in this talk I'm going to mention several articles, blog posts, things like that. So there is a bit.ly link on here. Oh, that didn't work. bit.ly slash rtfm-jm, rtfm-jm for Jessica Maurahan. That has all the links and stuff that I'm going to mention. So like I said, I've been a software engineer for 16 years and I didn't go to college. And a lot of times when people hear that, they ask, how did I learn to be a programmer? I spent a lot of time doing trial and error, reading blogs and Googling. I also spent a lot of time on forums. There was a PHP forum that I joined and I quickly became one of the top contributors on there, mostly answering questions about how to properly escape SQL statements and also helping people debug their code. I also joined Stack Overflow and became a top contributor on there. Raise your hand if you've ever used Stack Overflow or one of those types of forums or something like that. Raise your hand again if you've ever gotten an answer to your question that said rtfm. A couple. I like to explain rtfm to non-technical people as just read the manual or as Eleanor from The Good Place would say, read the forking manual. So sometimes when you ask a question, you get rtfm and that's all you get. Sometimes it's a little more detailed. You might get a link to the relevant documentation. Sometimes people say Google it or look it up. And sometimes it's a lot harsher. People who respond this way will often justify it by saying the question asker needs to learn how to ask better questions, do more research and problem solving on their own and that they're really helping them in the long run. And there's a little bit of truth to that. If you know that you won't get help or that you'll be made fun of for asking, you're less likely to ask a question. Maybe you'll spend more time banging your head against the wall trying to figure out the answer on your own. Maybe you'll learn to stop asking questions or give up because you don't think you can figure it out. Sites like Stack Overflow and forums have a ton of great knowledge. In my opinion, the best case scenario is you search for your problem and someone else already asked the question and you don't have to be the one to ask it. Sometimes, unfortunately, you do have to ask and sometimes, like in the relevant XKCD comic, you never get an answer. Sometimes though you do get answers, you learn something new and that's what happened for me a lot of the time. I learned a lot from these sites. But there's something else that we find on these types of sites and I think it's a symptom of a cultural problem that exists not just on Stack Overflow or Slack Spaces or Twitter or wherever it is that we are gathering together online. It's a problem in the entire tech community. This is a screenshot of a Google search. I did this in an incognito window. This is not influenced by my search history. I've typed why are programmers and the autocomplete is suggesting things including so rude, socially awkward, so arrogant, such douchebags. This is what people think of when they think of a programmer. The antisocial condescending attitude that tells people to RTFM, mocks people who call HTML a programming language. And I don't think this is a shock to any of us, right? We know this is how the rest of society thinks of us and that's how we think about ourselves. In a debate on Twitter about conferences having a code of conduct, someone responded this way. You demand too much from nerds that lost a lot of social skills as a trade-off to be good. Think about that. They're not saying that they're concerned about a code of conduct being abused by bad actors. They're not saying they're concerned about freedom of expression or something like that. They are saying that we are not capable of treating each other with respect because it's incompatible with being good technologists. And in the tech community, for too long, we have accepted that as a given that programmers are shitty human beings. We see this behavior in our tech leaders all the time. Some of the biggest names in tech have reputations for being jerks. A prominent example is Linux creator Linus Torvalds who has been known for his rude behavior, profanity, and personal insults for years. There is an entire subreddit dedicated to Torvalds' rants and outbursts on the Linux kernel mailing list. A New Yorker article highlighted Torvalds' approach. The emails of the celebrated programmer Linus Torvalds land like thunderbolts from on high, onto public lists full of invective, insults, and demeaning language. Please just kill yourself now. The world will be a better place, he wrote in one. So Torvalds has defended his style for years, saying it's just who he is, that he despises being nice, and he doesn't believe in politeness or political correctness. Now he's been successfully managing the Linux kernel development for over 20 years, and he's argued that his no bullshit approach has made him successful. Maybe it's working. It's definitely kept some people from wanting to contribute to that project, and it's promoted the idea that technical communities are full of condescending jerks. It's not just him, this attitude exists all over. I mentioned using a PHP forum earlier. Here's a quote pulled from a post on that forum. Oh, and by the way, I don't come here to help ungrateful whiny babies. So stop acting like a child, and remember this is a free help forum. Way to ensure you won't get my help again. This is why I don't usually write actual code for people. They act like assholes even when you give them what they want. Does that sound like someone who's actually trying to help? That was me, I wrote that in 2013. I resented my customers who asked stupid questions. I picked on coworkers who annoyed me for stupid reasons and criticized their code for equally stupid reasons. I worked at a company that had a manual QA team overseas once, and I remember seeing them as the enemy. Like, who did they think they were to find bugs in my code? In April of 2014, my boss said, we're going to a PHP conference. I didn't even know if such a thing existed at that time. And I was honestly not super excited about having to be around that many people. Like, I've never been great with strangers. My nightmare is when I'm at the self-checkout in the grocery store and the cashier comes to talk to me. I just naturally don't want to interact with people that I don't know most of the time. I have social anxiety. So anyway, we went to the conference and it turned out it was an amazing experience of listening to people explaining technology and how I could use it. And it was okay that I didn't already know how to do it. This is a photo of me and Adam Kulp. I won a drawing to get a super cool big Zend PHP elephant and I was actually eight months pregnant at the time, so I was like extra grouchy. The next year, we went back to Lone Star again. And in between the sessions, I got to talk to Ben Ramsey. Ben has organized conferences and user groups. He wrote the PHP UID library, UUID library, excuse me. We're actually coworkers now even. I remember saying to him at the time, it's so cool that you get to do this. I wish I could do this sort of thing, meaning the thing I'm doing right now. He told me something along the lines of, you can, everyone has something they can offer. It was totally okay that there was so much information that I didn't know. There were all of these people who wanted to share their information and they did it in a way that didn't make me feel like an idiot. At some point, I had to start thinking about what it meant when someone didn't know some piece of information that I did. One evening in December of 2016, I got a text message from a friend of mine. Said, do you know how to make an Android app? I responded in theory. I thought he had some business idea, maybe he wants to make the next Flappy Bird app. I'm pretty sure Flappy Bird was around then. I don't know if that's even a thing anymore. My friend responded and he spent the next hour telling me about how his friend's 18-year-old daughter had been in a coma and had just woken up. A month prior, she had had an arterial venous malformation, which is a tangle of abnormal blood vessels connecting arteries and veins in the brain. Two hours after that, she had life-saving surgery to remove a portion of her brain, the size of a kiwi fruit, in order to stop swelling and bleeding. She was in a coma for 31 days. When she woke up from the coma, the only thing she could do was blink. She couldn't move anything else. And they were not eligible to get the fancy eye-tracking software and hardware that would have made it possible for her to communicate. So they were communicating entirely through blink once for yes and twice for no. Her family had to guess at things she might want. She had no way to say, I'm thirsty or my head hurts or I wanna watch TV. And they had no way to know if she was even capable of thinking those thoughts anymore. So my friend asked if I could make an app for him that would cycle through the alphabet so she could blink at the letter she wanted and they could spell out words. So I quickly told him I can't actually make an Android app right now, but I can make a website. Will that work? So I sat down and I spent 45 minutes making this app in view. It let you swipe through the alphabet, click to add a letter. We added happy and sad faces that they asked for. And then I threw the generated files onto Amazon S3 and sent him the URL. For several weeks, they used that to communicate while Livia went through physical therapy and recovered. A few months later, she was walking again. So here I was spending time out of my evening, Christmas time. I could have been spending with my kids. To create something in a language that I didn't know, I'm not a JavaScript developer, but I thought that that would work. I wrote code that my JavaScript friends would probably make fun of if they saw it. For a person that I didn't know and had never met, because I thought that it might help. So why couldn't I spend five extra minutes to write code review with actual thoughtful comments that could help people? Why was I so angry at people who had done nothing but ask for my help or simply exist in the world around me? Why did I resent the people who used the products that I built? And why did I get annoyed that they didn't understand how software worked? There's a podcast by the life hacker called The Upgrade. And they did an episode called How to Not Be a Dick, in which they interviewed a former childhood bully named Jeffrey. In the interview, Jeffrey mentions several times about how angry he was as a teenager. He describes being as young as five years old, playing baseball, and he could pitch a perfect game. But if the team still lost by one point, he would lock himself in his room and cry because he felt this intense pressure to be perfect. In the interview, he says, I didn't come home every day and think, wow, I'm a bully. I thought, I'm cool, I'm great, I'm a tough guy, and don't mess with me, because I'll start a fight with you. The victim of Jeffrey's bullying, Eric, chimes in to describe how he felt like Jeffrey was a giant because of how aggressive he was, but in reality, Eric was about a foot taller. As the interview goes on, Jeffrey explains how he later had to ask himself, why am I so angry? Anger is usually a secondary emotion, meaning it stems from some other emotion entirely. Behind most of this anger is fear. We naturally try to fight the things that we are most insecure about, sometimes pointing out that we don't know the answer, sorry, that we know the answer makes us feel better about an unacknowledged fear that we don't know other answers. In the interview, Jeffrey describes his fear of not being good enough, even when he succeeded. If it wasn't perfect, he still felt fear and guilt. There's another podcast I listened to called My Brother, My Brother and Me, hosted by Justin Travis and Griffin McElroy. They actually taught me a lot about respecting people. When they first started their show, they were just messing around and they made a lot of jokes that didn't age very well. In the very beginning, they made one joke in particular about furries and they were pretty mean in an attempt to be funny. And they got some letters from some of their listeners that basically said, hey, I'm a furry and you really hurt my feelings. So they had two choices at that point. They could be defensive and pull the whole, it's just a joke, man, lighten up. Or they could admit that they had been insensitive and change their behavior. And they chose the second option. They apologized and they started making an effort to be more empathetic. They grew as comedians and they created and nurtured this amazing, welcoming, inclusive community built around encouragement and comedy that isn't cruel. They went on to grow their podcast into a TV show, several spin-off podcasts, they do national tours and they recently had the graphic novel adaptation of one of their shows, be number one on the New York Times bestseller list. Justin published a blog post several years ago titled What It Has Taken Me 33 Years to Learn. And the first item on the list is you can be funny and kind or funny and cruel. The second one is easier, but the first one is worth it. I spoke earlier about how Linus Torvalds has been an example of some of the negative stereotypes of programmers. Last year, Torvalds made a surprising announcement when after he accidentally created some scheduling conflicts to try to avoid the yearly Linux kernel summit, he was confronted by the Linux community about his behavior. Torvalds wrote, this week, people in our community confronted me about my lifetime of not understanding emotions. My flippant attacks in emails have been both unprofessional and uncalled for, especially at times when I made it personal. In my quest for a better patch, this made sense to me. I know now this was not okay, and I'm truly sorry. The above is basically a long-winded way to get to the somewhat painful personal admission that, hey, I need to change some of my behavior, and I want to apologize to the people that my personal behavior hurt and possibly drove away from kernel development entirely. I'm going to take some time off and get some assistance on how to understand people's emotions and respond appropriately. So I will admit that I was not raised in an environment where empathy was something that was encouraged or taught. I don't think that it was something I really heard people talk about until a few years ago. So it would be easy for me to say, I wasn't raised with empathy as an important value. It's not my fault that I don't get it, and I could have kept using these excuses to defend my behavior. But after seeing other people practicing empathy in their everyday lives, seeing examples of successful people who are making a difference and living without that constant fear and anger, I had to acknowledge that I had a problem and that it was possible to be both a good programmer and a kinder, more respectful, compassionate person. I've never been satisfied with seeing a problem go unsolved and I saw a problem in my own behavior. Most of the time when we're talking about empathy, we're referring to what's called emotional or effective empathy, which means being able to respond to someone else's emotions with an appropriate emotion. There's also another aspect to empathy known as cognitive empathy or the ability to understand another person's perspective. I think a lot of the conflict that we deal with could be reduced at least a little if we work on our cognitive empathy. So often, we don't take the time to put ourselves in other people's shoes and it's easier to dismiss them when we don't empathize with their experiences. It can be really hard to understand just how different someone else's life experiences has been from our own. So we often don't even attempt it. It's easier to dismiss them. I wanna try a little experiment with you guys. Everyone close your eyes and I want you to imagine yourself on a beach. Imagine the blue-green waves crashing against the shore. Imagine your toes digging into the white sand. Think about the sounds of the seagulls flying overhead. Think about the smell of the saltwater. Maybe there's beautiful palm trees on your beach or maybe there's a fire pit in the sand with people making s'mores. Okay, open your eyes. I want you to raise your hand if you would use the words pictured or visualized to describe what you just did. Raise your hand if in your mind you saw yourself on a beach. Maybe it looked something like this. My husband says he sees the beach from the movie Contact. Maybe some of you would say that you smelled the saltwater or the fire pit or that you heard the sounds of the waves. This is what I see. There's not a sight there. There is no such thing as visualization for me because I have aphantasia. I have no mind's eye. If I close my eyes, I see the back of my eyelids. Aphantasia is the inability to produce visual images in your mind. And I don't have any other senses in my mind either. Some people can hear other people's voices, not in a bad way. I have none of that. So there's a part of your brain that lights up on an MRI when you are looking at a picture and the same part of your brain lights up when you visualize or picture things in your brain unless you have aphantasia and you can't picture things. So I didn't actually find this out until about a year ago when a coworker shared an article about aphantasia and I had to start asking my friends and family if they really saw things when they tried to visualize things. I had gone my whole life so far thinking that everyone was being super metaphoric. So I didn't understand that the vast majority of people when they say they picture things, they actually picture things until I read about the 2% of people who don't picture things. And in an audience this size, there's probably two to four of you who just found this out as well. So when I figured this out, it actually made a lot of sense for me. But when I started explaining it to my friends, so many people had a hard time understanding it. They were like, do you mean you see in black and white? It's like, no, I don't see anything. To so many people, the experience of not being able to visualize things is unimaginable. They cannot put themselves in my shoes anymore than I can close my eyes and picture myself on a beach. I can think about a beach. When I imagine things, I don't see them or hear them or smell them, but I know what they look like. I know facts about them. I can remember walking in the sand with my friends or making s'mores on the beach with my daughter. I just do it differently. And I'll never know what it's like for people who can visualize things. So we're talking about something that honestly has very little impact, right? I went 32 years of my life without even knowing that this was a thing. So it clearly wasn't keeping me from doing anything really important other than picking paint colors for my house. So my friend's not being able to understand it when I say that I see nothing. It really doesn't mean that much. How do we handle it when it's something that does matter? Do we dismiss that person's experiences because we can't put ourselves in their experience in their shoes? This is a tweet from Lindsay Scott, where she says, looking forward to the day when women in tech don't have to go above and beyond to prove themselves. And it's accompanied by a screenshot of an Instagram post featuring Lindsay, who is a Victoria's Secret model and also has a bachelor's degree in computer science and knows multiple programming languages. Some of the comments on the post include, while printing Hello World these days is considered coding and what a waste. This is a quote from my friend Q. Someone shared an article about infighting between JavaScript devs and CSS devs. Q says, undervaluing slash underestimating front end code is very much a thing, especially if you do CSS things like I do. I feel this sometimes. According to some, stuff I do isn't considered real programming. I don't know why there exists a need to look down on others or for folks to have to defend their profession slash work. Justin's post of advice also includes a lot of other good items, such as I can count on one hand the number of times putting out negativity has brought me back something worthwhile and even when it works, it feels terrible. Don't correct people unless their wrongness will lead to them getting hurt or hurting someone else. You'll have a fleeting sense of superiority and they'll resent you. Nothing worthwhile comes of it. And empathy is the final step of maturity. It can take some work, but you'll be shocked how much easier the world is to navigate when you remember to use it. He also reminds us we're probably not drinking enough water. It's okay if you don't like talking to people that much, right? I still don't. I am always happy to talk to people at conferences. I am happy to help anyone who emails me, but I do have anxiety and I don't like it when that cashier comes to talk to me at the self-checkout because it's the self-checkout and I have both of my earbuds in. Why are you coming to talk to me? I don't know, maybe her boss makes her do it. Maybe her kids grew up and moved away and she doesn't have anyone else to talk to. It doesn't matter. It doesn't solve anything for me to be mean to her about it or to be angry about it. And solving problems is my favorite thing to do. It's the whole reason that I got into programming is to solve problems for other people. And I forgot about that for a long time. I forgot that that paycheck only keeps coming because the code I'm writing is ultimately solving a problem for someone else. That problem might be technically challenging. You could be using the newest language doing things that I can't even think of yet. You could be doing something as mundane as automating a reporting process that previously took someone four hours to do manually. Or it could be as life-changing and inspiring as allowing a teenager to tell her family she's okay after she had brain surgery. If I had continued to view the people around me as beneath me instead of as equals and continued to take out my anger on everyone in my life, I might not have had the chance to help Livia. But now I have the opportunity to help anyone who asks for it. So going forward, I'm constantly making a choice to be kind. I'm making a conscious effort to be more thoughtful and purposeful about the way I speak about and to the people around me. I'm not saying I'm perfect. I can still be better. We can all do better. The lack of empathy, understanding, respect, compassion, and community in tech is a problem. Sorry, I'm having a little issue here. We're all responsible for making this community a better place. We are all a part of it. Through the jokes that we make, the tickets that we solve at work, the code that we write, everything we do, we are responsible for making tech a better place. So let's go do it. Thank you.